あるファイルシステム (ext4) から別のファイルシステム (NTFS) に移動中にファイルを削除するとどうなりますか?

あるファイルシステム (ext4) から別のファイルシステム (NTFS) に移動中にファイルを削除するとどうなりますか?

これは昨日から私を悩ませています。GNOME Files (Nautilus) を使用して、ビデオ ファイルを [ダウンロード] フォルダーから NTFS ドライブに移動していました。ファイルを切り取って貼り付けると、すぐにターゲットの宛先 (同じハード ドライブ上の ntfs-3g を使用した別の NTFS ファイルシステム) に表示されました。あるファイルシステムから別のファイルシステムにファイルを移動すると、基本的にファイルがコピーされてから削除されることは知っています (間違っていたら訂正してください)。しかし、急いでソースからファイルを 'shift+delete' すると、しばらくして、ソースからファイルを削除してファイルが消えた後でも、ファイル マネージャーがまだファイルを NTFS ファイルシステムに移動していることに気付きました。移動バーが 100% に達した後、エラーしかし、ターゲットの保存先を確認したところ、ファイルは保存先に移動されており、正常に再生されました。

では、ここで実際に何が起こったのでしょうか? Linux 上のファイル操作は、移動操作を中断しないようにその後も機能するのでしょうか? それとも、ターゲットに移動されたファイルが破損しているのでしょうか? それとも、移動操作によってファイルが削除されるため、ファイルの移動中に最後のコピー操作が行われたためにエラーが発生したのでしょうか?

答え1

ファイルを削除しても、そのデータ (内容) は消去されません。ファイルが存在することを示すメタデータのみが削除され、対応するディスク領域が「後で使用するために空き」としてマークされます。

しかし、もっと重要なのは、OSが保つメタデータは必要なだけ保持されます。ファイルをディレクトリから (または複数のハードリンクがある場合はすべてのディレクトリから) リンク解除した後でも、少なくとも 1 つのプロセスがファイルを開いたままにしている限り、OS は実際のファイルを削除しません。そのため、コピー操作の残りの間、ファイルは名前が付いていないだけで (ただし、スペースは占有したまま) そこに残ります。

した「コピー操作」と言うのは、コンピュータは物理的にディスク間でデータを移動できないためです。まず、ファイルが宛先にコピーされ、それから元のファイルは削除されます。これがエラーメッセージが表示される理由です。ファイルマネージャーは2つの別々の操作(コピーと削除)を使用します。コピーは成功しましたが、削除は失敗しました(すでに削除しました。

答え2

Linux では、ほとんどの場合、開いているファイルを削除できます。これにより、ファイルはディレクトリ リストから消えます。ただし、ファイルが占めていたスペースは、ファイルが使用されなくなった後にのみ解放されます。

あなたのケースで失敗したのは、移動操作の最後のステップ、つまりソース ファイル/ディレクトリの削除だけです。

関連情報