rm
最近、誤ってファイルセットを処理しましたが、このファイルが正確にどこにあるかを考えました。
つまり、GUIを使用すると、削除されたファイルはごみ箱に移動されます。何と同じですかrm
?rm
コマンドをキャンセルする方法はありますか?
答え1
行くところがない、消えた、消えた。具体的に言えば、ファイルのリンクが解除されました。データはまだディスクにありますが、そのリンクは削除されました。以前はデータを取得できましたが、現在はメタデータが消去され、回復できませんでした。
rm
ゴミ箱がなくてはいけません。ゴミ箱が必要な場合は、より高いレベルのインターフェースを使用する必要があります。 Ubuntuにはコマンドラインユーティリティがありますが、trash-cli
ほとんどの場合、NautilusやDolphinなどのGUIファイルマネージャを使用して標準のごみ箱を提供しています。ゴミ箱自体は標準です。 Dolphinから削除されたファイルは、Nautilusのごみ箱に表示されます。
~/.local/share/Trash/files/
ファイルは通常廃棄されたかのようにどこかに移動されます。 UNIX / Linuxのコマンドはrm
DOS / Windowsのコマンドと同じで、del
削除と実行も行われます。いいえファイルをごみ箱に移動します。もう1つ知っておくべきことは、ファイルシステムを介して(たとえば、ハードドライブからUSBディスクに)ファイルを移動することは、実際には1)ファイルデータのコピーを作成し、2)元のファイルを切断することです。これらの追加コピーのため、ごみ箱がいっぱいになることは望ましくありません。
答え2
ext3/ext4 の場合、次のツールを使用してファイルの修復を試みることができます。拡張を削除またはext3grep、または行っても錯乱低レベルの構造で手動(深刻な人ではない)多くのファイルシステムでまだ一部のパターンで処理されていないブロックを検索できます(例:魔法の構造JPEGヘッダなどを検索できます。これらの方法は、残されたメタデータからファイルを回復するために経験的な方法を使用するため、完全な回復は保証されません。まだカバーされていません)。
したがって、すべての意図と目的のために削除されたファイルはrm
消えました。努力するこれらのツールはそのような規範を提供しますが、それに頼らないでください。他のすべての方法が失敗した場合は、次のツールを試してください。最新のバックアップを探すのが最善です(常にバックアップを作成しますか?ああ、進んで学ぶ...)。
答え3
次の効果の除去についてrm
:
ほとんどのファイルシステムはデータへの参照のみを削除し、ブロックが利用可能であることを示すため、デバイスから直接データを読み取ることができます。幸いなことに、ファイルを含むブロックはすでに他の項目で埋められていません。
これは、あなたが探しているシステムにかなりユニークなものがあると仮定し、複数のroot
ファイルシステムブロック(おそらく4k)にまたがるすべてを一緒に接続することは、ファイルシステムがファイルを置くことができない場合は非常に難しいかもしれません。連続したブロックに入ります。
grep
ファイルシステムを持つデバイスで文字列を実行し、大きなコンテキストのあるファイルからコンテンツを検索する()を使用して、複数のプレーンテキストファイル-C
のコンテンツを正常に復元しました。 (事故直後、当社はバックアップの実施に一部のリソースを投資することにしました。)
答え4
Unixスタイルのファイルシステム(Linuxを含む)では、ファイルは実際には特定の場所に「生きていません」です。代わりに、システムはハードリンクを使用して大量のデータに対応するフラグメントを指します。したがって、ファイルを作成すると、最初のハードリンクも作成されます。このハードリンクは、実際にファイルを「保存」した場所にあります。より多くのハードリンクを作成すると、システムが知っている限り、ファイルは実際には同時に複数の場所に存在します。
ファイルを「削除」するときは、通常、実際には指定された場所に存在するハードリンクのみを削除します。これがファイル削除のためのシステムコールが呼び出される理由ですunlink()
。ハードリンクが残っていなくなるまで、システムは実際にファイルを削除しません。ただし、最後のハードリンクが破壊されると、データも破壊されます。
それでは、削除されたファイルはどこに行きますか?ハードリンクがまだ存在する場合、そのファイルは削除していないハードリンクと同じ場所にあります。ハードリンクが残っていないと、ファイルは消えます。