以下の条件下で-
mv
同じHDDパーティション内mv
を同じHDD内の別のパーティションにmv
を別のデバイス(USB HDDなど)にファイル全体が移動されますか、それともポインタの再割り当てのような非常に小さな変更ですか?
ファイルシステム内での移動(ファイルの名前変更とも呼ばれます)の処理方法は各ファイルシステム次第ですが、ファイルシステムは、iノードやファイルの内容を移動せずにディレクトリエントリを更新することで、ほぼ普遍的に処理します。
ファイルシステム間の移動(同じ物理メディア上にあるかどうかは関係ありません)は、ファイルのコピーとそれに続く削除として処理されます。これは実際、mv
コマンドが実行することとまったく同じです。明らかにそれは宛先ファイルシステムがファイルの新しいコピーを作らなければならないことを意味します。
man mv
さんのコメント:
As the rename(2) call does not work across file systems, mv uses cp(1) and rm(1) to
accomplish the move. The effect is equivalent to:
rm -f destination_path && \
cp -pRP source_file destination && \
rm -rf source_file