移动目录而不修改时间戳表示 mv 更改目录的时间戳。
当我mv
将文件从外部硬盘驱动器传输到另一个外部硬盘驱动器时,它也会更改目录的时间戳。
当我mv
在本地文件系统中创建目录时,它不会更改目录的时间戳。
何时mv
更改文件的时间戳和其他属性,何时不更改?谢谢。
我记得在其他系统上遇到过这种情况,并且与现在显示的测试效果不同。我认为这些是实现差异。我在下面这样描述它们。
大多数实现mv
尝试在移动文件时不更改文件的时间戳。但是,可能不会考虑移动后部分的影响。
这基本上意味着:
如果您在文件系统中移动文件或目录,则该文件或目录上的时间戳不会改变。
如果您将文件移动到不同的文件系统,其时间戳将重置为当前时间,因为这是秘密副本。但是,mv
通常足够聪明,可以尽其所能恢复旧时间戳,因此访问时间和修改时间将“保持”相同,但更改时间戳将更新为当前时间。
如果将空目录移动到不同的文件系统,则适用相同的规则。
如果您将包含内容的目录移动到不同的文件系统,mv
将创建mkdir
一个新目录,复制权限和所有权,并恢复原始时间……然后将该目录的内容移动到其中,更新其时间戳。一些实现解决了这个问题(比如 GNU coreutils mv
8.29),而另一些则没有(比如我记得之前测试过这种行为的那些)。
mv
将始终更新它移动文件/目录的目录的时间戳以及它移动文件/目录的目录。(基本上,它会修改这些目录,所以它当然会更新它们的修改时间戳,只要有问题的文件系统具有修改时间戳。据我所知,这就是全部。)