NTFSファイルシステムの「rm」は、Windows独自の実装とどう違うのですか?

NTFSファイルシステムの「rm」は、Windows独自の実装とどう違うのですか?

NTFSファイルシステムを備えた外部USBディスクがあります。

Windowsでファイルを削除して複数の「削除解除」ユーティリティ(TestDiskなど)のいずれかを実行すると、ファイルを簡単に復元できます(「まだそこには削除されたとマークされているため」)。

Linuxでファイルを削除すると、どのユーティリティも(詳細な検索署名ベースのユーティリティを使用しない限り)ファイルを回復できません。なぜ? LinuxのNTFSファイルシステムコードでのリンク解除はどのように実装されていますか? 「削除済みとしてマーク」されただけでなく、ディスクの一部の構造も消去されたようです。これは本当ですか?

答え1

好奇心でntfs3gソースコードを見ました。

ntfs_delete(...)dir.c削除操作を実行できる関数が に定義されているようです。

ファイルシステム構造から削除されたすべてのファイル/ディレクトリのメタデータを確実に削除します。

Microsoft独自のバージョンのソースコードが利用できないため、アンインストールの実行方法についての知識に基づいて推測してください。

元に戻すユーティリティは削除されたファイルの場所と名前を回復できるため、Microsoftは単にMFTエントリを未使用のエントリとしてマークするようです。

答え2

Windows と NTFS についてはわかりませんが、Unix/Linux ファイルマネージャ GUI と Mac OS X Finder でこれを行う一般的な方法は、実際にファイルを削除せずに次の特殊な隠しファイルに移動することです。ゴミクリップ(または同様のもの)。元に戻すコマンドは、ごみ箱フォルダからファイルを検索します。

rmユーザーの要求に応じてごみ箱フォルダを気にせずにファイルを削除します。

関連情報