回答:
読み取り操作の完了にかかる時間に関係なく、読み取り操作は成功します。
これはなぜ、どのように機能しますか?
読み取り操作が開始されると、ファイルのInodeがファイルのコンテンツが読み取られるハンドルとして使用されます。
別のファイルをターゲットファイルに移動すると、結果は新しいiノードになります。つまり、ディスク上のファイルの物理的なコンテンツが別の場所に配置され、読み取られているファイルの元のコンテンツは変更されません。
それらが共通している唯一のものは、それらのパス/ファイル名ですが、ディスク上の基礎となるiノードと物理的な場所は変わります。
読み取り操作が終了すると(他のプロセスで古いファイルのオープンファイルハンドルがまだなく、そのiノードを参照する他のハードリンクがない場合)、古いデータは破棄されます。
移動操作が完了すると、ファイルには新しいiノードインデックス番号が付けられます。
を使用して、ファイルのiノードインデックス番号を表示できますls -i /tmp/some-file
。
上記と同じ理由で、ファイルを参照している間、ファイルを使用するアプリケーションはiノードから(ディスク上の実際のファイルの内容を指している)を読み取るだけなので、アプリケーションによってまだ使用されているファイルを削除することができます。ファイルシステムで削除されます。