更好的是,有没有办法在执行“cp”时避免更改/更新时间戳?
是的,cp
与-p
选项一起使用:
-p
与 --preserve=mode,ownership,timestamps 相同
- 保存
保留指定的属性(默认:模式、所有权、时间戳),如果可能,附加属性:上下文、链接、xattr、所有
例子
$ ls -ltr
-rwxrwxr-x 1 me me 368 Apr 24 10:50 old_file
$ cp old_file not_maintains <----- does not preserve time
$ cp -p old_file do_maintains <----- does preserve time
$ ls -ltr
total 28
-rwxrwxr-x 1 me me 368 Apr 24 10:50 old_file
-rwxrwxr-x 1 me me 368 Apr 24 10:50 do_maintains <----- does preserve time
-rwxrwxr-x 1 me me 368 Sep 30 11:33 not_maintains <----- does not preserve time
要基于另一个路径上的对称文件递归touch
目录上的文件,您可以尝试以下操作:
find /your/path/ -exec touch -r $(echo {} | sed "s#/your/path#/your/original/path#g") {} \;
它对我不起作用,但我想这是尝试/测试更多一点的问题。