合并两个目录并保留最新文件

合并两个目录并保留最新文件

是否有一个 unix 命令可以将一个目录的内容复制到另一个目录,但始终保留最新的文件?

我的意思是,有目录 A 和目录 B,我需要将 B 的内容复制到 A 中。如果目录 B 上的文件名在 A 上已经存在,则根据其创建日期保留最新的文件名。

答案1

您可以使用 rsync 同步两个目录的内容。该选项-u/ --update具有以下效果

跳过接收器上较新的文件

所以你可以使用rsync -auvh dir1/ dir2/

-a= 存档模式。启用一系列选项,例如递归、保留基本属性(权限、所有者、类型符号链接)。

-v-h是详细且人性化易读的选项。不是至关重要的,但有助于了解正在发生的事情。

我建议您首先使用该-—dry-run选项运行任何 rsync 命令,以便检查是否有意外结果。

答案2

您可以使用普通的cp,带有此选项:

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

如果每个目录中分散有较新的文件,则可以cp从每个目录运行一次,只将较新的文件复制到较旧的文件上。

相关内容