最初,mv(1)
这是一项重命名操作;它更新文件系统中的名称,但不复制文件。最近,添加了一项便利功能,即如果源和目标位于不同的文件系统上,它将复制并删除文件。又称为“设备间移动”。
现在我正试图整理我的备份。我想移动.../rest2/Public/Backups
到.../rest2/Backup/(Backups)
,所以:
root@ts412:/QNAP/mounts/rest2# mv Public/Backups Backup/
在哪里:
root@ts412:/QNAP/mounts/rest2# df -h /QNAP/mounts/rest2/Public/
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# df -h /QNAP/mounts/rest2/Backup/
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
因此相同的文件系统:
(仅供参考,rest2
是“剩余的空间disk2
”)
但是移动开始表现得像“设备间移动”(高 CPU、磁盘繁忙、有关非空目录的各种错误等),所以我终止了它。
以稍微不同的方式检查(注意.
):
root@ts412:/QNAP/mounts/rest2# df -h Backup/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# df -h Public/Backups/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2/Public
然后我记得我还有一个绑定挂载(它使通过 NFS 共享的名称更加友好)。所以我卸载了额外的绑定挂载:
root@ts412:/QNAP/mounts/rest2# umount /QNAP/mounts/rest2/Public
root@ts412:/QNAP/mounts/rest2# df -h Public/Backups/.
Filesystem Size Used Avail Use% Mounted on
/dev/sdb10 831G 715G 75G 91% /QNAP/mounts/rest2
root@ts412:/QNAP/mounts/rest2# mv Public/Backups Backup/
mv(1)
正如我所料,它是立即发生的。
因此,尽管有额外的mount(8)
s, 但源和目标始终位于同一文件系统中,这mount -o bind /QNAP/mounts/rest2/Backups /Backups
不会影响这一点。所以我想知道,如果mv(1)
返回/QNAP/mounts/rest2
一个的挂载点和/QNAP/mounts/rest2/Public
另一个的挂载点,它会错误地确定这两个文件位于不同的文件系统上吗?