为什么在“mv”期间源分区上的可用空间没有变化?

为什么在“mv”期间源分区上的可用空间没有变化?

我正在运行mv将目录(包含许多文件)从一个分区移动到另一个分区。mv在逐个移动目录中的单个文件时,我注意到源分区的可用空间大小没有变化,而目标分区的可用空间大小却在减少。

为什么它会这样工作,而不是源分区和目标分区的可用空间大小之和保持不变?

答案1

正如 POSIX 定义的那样,MV会将源文件复制到目标路径,如果没有问题,源文件将被删除:

  1. 以 source_file 为根的文件层次结构应复制为以目标路径为根的文件层次结构

  2. 应删除以 source_file 为根的文件层次结构。如果由于任何原因失败,mv 将向标准错误写入一条诊断消息,对当前的 source_file 不再执行任何操作,并继续处理任何剩余的 source_file。

如果在同一文件系统上移动,则只需将条目从文件系统中的一个位置移动到另一位置。

它保证如果移动过程中发生错误,您不会丢失源文件。

答案2

它是保守的,在复制成功之前不会删除文件。这使得出现问题时更容易恢复。

相关内容