【发布时间】:2010-01-18 03:40:10
【问题描述】:
基本上,我正在尝试将 dir1 和 dir2(不包括子目录)的内容复制到 dir3 中。需要注意的是,如果 dir1 和 dir2 中都存在一个文件,我需要复制较新的文件。假设更新的文件存在于 dir2 中。
我有:
find dir1 -type f -exec cp {} dir3 \;
find dir2 -type f -exec cp -u {} dir3 \;
这样做会导致这个问题:由于 dir1 中的文件在 dir2 之前复制,因此 dir1 中的所有文件(现在位于 dir3 中)都被认为是较新的,不会被覆盖。
我认为您必须在 dir1 中处理一个文件,检查它是否存在于 dir2 中,然后检查哪个较新。但是我不知道该怎么做,除了你可以使用“-nt”。我在想我只是以错误的方式解决这个问题。
【问题讨论】: