同じパーティションの別のディレクトリにファイルを移動すると、そのファイルのデータは実際にディスクから移動しますか?

同じパーティションの別のディレクトリにファイルを移動すると、そのファイルのデータは実際にディスクから移動しますか?

双方向に進むのがわかります。ファイルシステムが各ディレクトリにディレクトリ構造とファイルのリストを保存し、各ファイルのディスク位置を指す場合、ファイルを「移動」するためにファイルデータを実際にディスクから移動する必要はありません。一方、ファイルをコピーしてコピーを確認した後、コピーがチェックアウトされた後に元のファイルを削除する方法で「移動」が行われることがわかります。答えはファイルシステムの種類によって異なりますか?

答え1

いいえ、ファイルはコピーされず、元の場所に残ります。変更はディレクトリのリストです。そのため、同じパーティションで最大のファイルを移動するのに時間がかかりません。

(従来のロータリー)ディスク上にファイルを連続的に保持することは、ファイルをより速く読み書きできるので有利です。ヘッドがプラッタの周りを飛び回る必要はありません。しかし、必ず守る必要はありません目次ディスクから連続しています。

ファイルをコピーしてコピーを確認してからコピーをチェックアウトしたら、元のファイルを削除して「移動」が機能していることを確認できます。答えはファイルシステムの種類によって異なりますか?

私はファイルシステムの専門家ではありませんが、通常のファイルシステムでこれを行うことは想像できません。これは、大幅なパフォーマンス低下を招き、ハードウェアに摩耗を加えることができるからです。

答え2

はい、ファイルシステムの種類によって異なります。しかし、私が知っているすべての最新のファイルシステムは、ある種のポインタスキームを使用しています。 linux / unixファイルシステム(ext2、ext3、ext4 ...)はこれを行うためにINODESを使用します。

ls -iファイルに使用すると、ファイル名が参照するinode番号(ディレクトリエントリのメタ情報)を確認できます。これらのファイルシステムでを使用している場合、mv結果の操作はファイルシステム内の新しいポインタになるcpか、FS境界を超える場合になります。rm

関連情報