是否有一个 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
从每个目录运行一次,只将较新的文件复制到较旧的文件上。