当将目录移动到另一个文件系统并且空间不足时,文件会被删除吗?

当将目录移动到另一个文件系统并且空间不足时,文件会被删除吗?

给定/mnt/source//mnt/target/两个不同的地方/文件系统。

  • mv /mnt/source/dir /mnt/target/
  • 它在半路上耗尽了空间(并停止了)

  1. 想象一下,其中/mnt/source/dir充满了目录、子目录和文件,当mv出现故障时,是否会从中删除任何文件/mnt/source/dir

  2. 我可以安全地删除我的失败(rm /mnt/target/dir),在文件系统上准备更多空间/mnt/target/,然后再次尝试移动操作吗?

  3. 或者:如果我无法在/mnt/target/文件系统上准备更多空间,我是否应该进行某种“撤消” mv /mnt/target/dir/* /mnt/source/dir/(使用文件管理器覆盖目标文件)操作,以便我可以改变主意而根本不尝试移动?


有关的: 当您强制退出两个磁盘之间的“mv”目录操作时会发生什么?

答案1

文件是否从 /mnt/source/foo 中删除?

直到命令报告移动成功。

$ $ mv --version
mv (GNU coreutils) 8.25

$ info mv

了解发生的情况:

mv可以将任何类型的文件从一个文件系统移动到另一个文件系统。在 fileutils 4.0 版本之前,mv只能在文件系统之间移动常规文件。例如,现在mv可以将整个目录层次结构(包括特殊设备文件)从一个分区移动到另一个分区。它首先使用与复制请求的目录和文件相同的代码cp -a,然后(假设复制成功)删除原始文件。如果复制失败,则复制到目标分区的部分将被删除。 如果您将三个目录从一个分区复制到另一个分区,并且第一个目录的复制成功,但第二个目录的复制失败,则第一个目录将留在目标分区上,第二个和第三个目录将留在原始分区上。

注意第二部分以粗体显示:这是每次mv执行时都会做的

mv a b c /dir/

将删除“a”和“b”之间的“a”。

相关内容