mv:设备间移动是否会使将目录移动到同名目录成为不同的操作?

mv:设备间移动是否会使将目录移动到同名目录成为不同的操作?

鉴于:

# mv /mnt/hard/git-src/ /usr/portage/distfiles/

mv:设备间移动失败: /mnt/hard/git-src/' to /usr/portage/distfiles/git-src';无法删除目标:是一个目录

光盘/ tmp; mkdir ab; mdkir a/cb/c;

触摸 a/c/1 b/c/1

mv a/cb/ mv: 无法移动a/c' tob/c': 文件存在

联系方式

MV A/CB/

因此,当目录包含类似文件时,将目录移动到同名目录将被视为“文件存在”。使用不同分区时将其标记为“设备间移动”有什么意义?

答案1

mv在同一文件系统上意味着将单个目录条目从一个目录移动到另一个目录。mv跨文件系统意味着复制整个源树并在复制后删除源文件。这两种情况下的算法和代码不同,许多故障模式也不同,因此mv在执行跨文件系统移动时,错误消息会明确说明。

(在这里,在同一个文件系统上,它是一个rename返回错误的系统调用。对于跨文件系统移动,这是mkdir调用,作为目录树重新创建的一部分。)

相关内容