在下列条件下——
mv
在同一硬盘分区内mv
到同一硬盘的不同分区mv
到不同的设备(例如 USB HDD)
是整个文件被移动还是像一些指针重新分配这样的一个非常小的变化?
答案1
如何处理文件系统内的移动(也称为重命名文件)取决于每个文件系统,但文件系统几乎普遍通过更新目录条目而不移动 inode 或文件内容来处理它。
文件系统之间的移动(无论是否位于同一物理介质上)都被处理为文件副本,然后删除。事实上,这正是该mv
命令的作用。显然,这意味着目标文件系统必须创建文件的新副本。
答案2
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