gpt4 book ai didi

linux - 对于cp命令,如何理解 "newer"文件

转载 作者:太空狗 更新时间:2023-10-29 12:14:55 26 4
gpt4 key购买 nike

我检查了 man cp 并在 Ubuntu 14.04 中做了一些实验。我发现 cp -u 通过比较修改时间来更新文件。我对么?在手册页中指出:

-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing

我找不到“较新”的定义,一般情况下我们是比较访问时间,修改时间还是更改时间?

最佳答案

当源发生元数据更改(“更改”)时,如重命名、附加硬链接(hard link)或其他任何内容,没有理由更新目标。因此,预计只有内容更改(“修改”)才算数。

我刚刚通过创建源文件、复制到目标、重命名源并重复复制来对此进行了测试。

当使用 ls -ltc 根据最后的元数据更改列出文件时,源文件的时间戳较新。因此,尽管有关“更改”的来源较新,但不要复制。内容的变化导致目标的预期更新。

请注意:重命名会更改修改时间,这实际上并不明显,因为文件名存储在目录中,而不是 inode 中。但是,当重命名内核时,会为相关 inode 创建一个新的硬链接(hard link),并删除指向旧名称的那个。所以虽然重命名操作前后inode中存储的硬链接(hard link)数相同,但inode实际上已经改变了两次。

通过更改对 inode 的影响更明显的更改,如 chmod,可以获得相同的结果。

关于linux - 对于cp命令,如何理解 "newer"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29019918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com