web-dev-qa-db-ja.com

rmで削除されたファイル/ディレクトリを復元できますか?

rmおよびrm -rを使用して、ターミナルから削除されたファイル/ディレクトリを復元することは可能ですか?グラフィカルインターフェイスからファイルを削除した場合、ゴミ箱から復元できますが、rmユーティリティを使用してファイルを削除した場合、どのように復元しますか?.

69
user3215

このために、trash-cliパッケージと~/.bashrcで次のエイリアスを使用します

alias rm=trash

trash-cliパッケージは、次のコマンドでインストールできます:Sudo apt-get install trash-cli

削除したファイルはゴミ箱に移動され、nautilusのゴミ箱に表示されます。

次のいずれかの方法を使用して、いつでも実際のrmにアクセスできます。

command rm something
'rm' something
\rm something

ターミナルからゴミ箱にアクセスするコマンド、trash-listrestore-trash(またはtrash-restore)、trash-emptyパッケージtrash-cliからインストール可能なコマンドもあります(それらのmanページを参照)。

最後に、このようなエイリアスをスーパーユーザーに使用することはお勧めできません。システムの操作を妨げる可能性があるためです。

63
enzotib

ターミナルから削除すると永久に削除されます-回復は非常に難しく、時には不可能です。

パーティションタイプがext3System->Administration->Disk Utilityを使用して確認)の場合、 ext3undel を確認してください。

そうでない場合(default設定でUbuntuをインストールした場合)、extundeleteプログラムを試してください。

ただし、何かを回復する保証はありません。

27
evgeny

あなたが探しています:extundelete-ext3/ext4パーティションから削除されたファイルを回復するユーティリティ

このようなパッケージを見つけるには、次を試してください:apt-cache search undelete

ユーティリティを使用するには、Sudo apt-get install extundeleteでインストールします。

インストール後、 man extundelete を呼び出して慎重に検討してください。

13
H.-Dirk Schmitt

代替案として、ファイルの種類が具体的にわかっている場合は...

Sudo apt-get install foremost

/etc/foremost.confを開くと、コメントアウトされた行の長いリストが表示されます。ファイルの種類が存在する場合は、行のコメントを解除します(無関係な行を削除することもできます)。

ファイルタイプが存在しない場合は、独自の行を追加します。 .cssファイルを復元したいのですが、40K前後であることを知っています。これを追加できます:

css     n       40000   Theme\sName:     Plugin\sFixes

2列目は大文字と小文字の区別、3列目はサイズの上限、4列目はファイルの開始方法(エスケープ文字を使用することを忘れないでください)、最後の列はファイルの通常の終了方法です。

次のコマンドを使用します(それに応じてディスクを編集します。dfコマンドで確認できます)

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

次に何が起こるかは、何よりもまずoutputというフォルダーを作成し、復元されたすべてのデータ(この場合)をフォルダーにダンプすることです。そこからdiffまたはmeldを使用して、復元された「ファイル」を比較し、どれが最新であるかを確認できます。

6
Reuben L.

最も抽象的な言葉で言えば、グラフィカルインターフェイスでファイルを削除すると、そのファイルはtrashというディレクトリである特別な「バッファ」に「移動」されます。 homeディレクトリ、~/.local/share/Trash/で見つけることができます。このディレクトリから「削除」されたファイルは、実際に削除されます。この実際の削除は、ファイルでrmを使用すると発生します。

削除されたファイルを回復することは非常に困難です。ファイルシステム内のファイルは、Bツリーなどのノードとして表されます。 rmを使用してファイルを削除すると、ツリーが更新され、ハードリンクの数が減り、ディレクトリリスト内の対応するエントリが削除されます。ファイルにハードリンクがあったとしても、ファイルは完全に安全です。 file / -samefile filenameを実行できます。 iノード番号も覚えていれば、ファイルを検索できます(ほとんどそうではありません)。

別のケースは、上記の可能性のいずれも当てはまらない場合です。ファイルをrmするたびに、ディレクトリのファイルエントリが削除され、ハードリンクの数が1つ減ります。また、ハードリンクの数がゼロになった場合、iノード上のファイルへのポインターが削除されるか、削除対象としてマークされます。いずれにしても、ファイルは「まだ」ハードディスクに保存されています。ファイルは、その後の再マウント時にのみ実際にハードディスクから消去されます。このような場合のファイルリカバリは非常に難しく、ファイルシステムツリーと実際のディスクブロックの場所を表すiノードを経由する必要があります。私が聞いたことがありますが、使用していない人気のあるツール、extundeleteがあります。保証はありませんが、試してみる価値はあります。

ファイルを正常に回復したかどうかを確認したら、急いで定期的なバックアップを行ってください。 Ubuntuでは非常に簡単です。

5
John Strood

申し訳ありませんが、「rm」および「rm -f」を使用してコマンドラインから削除されたファイルは、Gnomeデスクトップにある「ゴミ箱」をバイパスします。

また、FATやNTFSのようなextfsの「削除解除」ツールがあるかどうかを尋ねることもできます。 (私は何も知らないが、もしなければ驚いただろう。)

2
Stéphane

"rm-trash"ユーティリティを使用して、後で検索するためにそれらをゴミ箱に入れ、 "rm"コマンドのすべてのオプションをサポートします。

Sudo add-apt-repository ppa:nateshmbhat/rm-trash
Sudo apt-get update
Sudo apt-get install rm-trash

「rm-trash」は

  • rmの代わりに使用するためのもの
  • rmが取りうるすべてのオプションを処理します
  • 既にゴミ箱にあるファイルとのファイル名の衝突を処理します
  • いくつかの許可の問題を自動的に処理します
  • rmが他のスクリプトからまたは間接的に呼び出された場合、システムの「rm」コマンドが自動的に使用されます
  • rmで発生するような適切なエラーメッセージを表示します
1
Natesh bhat