gpt4 book ai didi

linux - find -newer 只检测新复制的文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:07:47 25 4
gpt4 key购买 nike

我正在使用下面的代码

if [ ! -f $time_mark ]
then
touch $time_mark
fi

cp -f aaa.txt bbb.txt ccc.txt $file_dir
find $file_dir -newer $time_mark > file_list.txt
...

我正在使用 find -newer 仅发送复制晚于 $time_mark 的文件。但事实证明,如果第一次$time_mark不存在,它会执行touch $time_mark并开始复制文件,这几乎可以同时发生。这导致 $time_mark 和复制的文件具有相同的系统时间,并且仅发送晚于 $time_mark 复制的文件的整个概念不起作用。

有什么办法可以解决这个问题吗?

谢谢

最佳答案

if [ -f $time_mark ]
then
incremental="-newer $time_mark"
else
incremental=""
touch $time_mark
fi

...
find $file_dir $incremental > file_list.txt
...

更好的方法似乎是有条件地执行触摸(仅当先前运行成功时?)

我强烈建议查看 rsyncrdiff-backup 或其他(备份?)可以进行增量更改检测的工具。

作为一个非常简单的措施,因为你似乎暗示你想将这些文件(?)复制到某个地方,只需使用 -pu 复制(--preserve=mode,ownership,timestamps --update) 可以解决问题

关于linux - find -newer 只检测新复制的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6571850/

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