mv 命令用于许多不存在的文件,它是否会磨损目标磁盘?

mv 命令用于许多不存在的文件,它是否会磨损目标磁盘?

我正在尝试连续将许多文件(每分钟约 10 000 个)从 /ramdisk 移动到普通 /ssd ,但并非所有文件都在那里。

mv /ramdisk/file55 /ssd/file55由于源不存在而失败时,它是否会尝试在目标中写入任何内容?

我这样问是因为我担心它会磨损目标 SSD,这就是为什么大多数文件都保存在 /ramdisk 中

答案1

回答这个问题的唯一真正方法是查看源代码。实施情况可能会有所不同。

特别是,我假设mv你指的是由GNU Coreutils

我不确定我是否理解他们mv代码中的所有细微差别,但我可以注意到以下事实:

  • 其中src/mv.c有一个函数do_move(const char *source, const char *dest, const struct cp_options *x)可能是mv.该函数调用另一个名为 的函数copy
  • 在 中src/copy.ccopy调用的函数do_move基本上是另一个名为 的函数的包装器copy_internal
  • 在函数的顶部,copy_internal它尝试访问stat源文件。如果失败,它就会退出而不做任何事情。

因此,我认为可以安全地回答:

在通过各种检查之前,尝试访问mv不存在的文件不会影响目标。

相关内容