我正在尝试构建一个脚本来比较不同 2 个目录中的文件,然后将它们从 dir1 复制到 dir2(如果 dir2 中不存在),或者如果它已经存在则覆盖它。
我知道我可以使用,diff dir1 dir2
但是如何将结果复制到 dir2。因为diff
命令给了我类似的结果only in dir1: file1.txt
,据我所知,这本身不是一个文件(对吗?)
对于覆盖部分,我决定使用[ -ot ]
命令,但同样,根据我的理解, [ -ot ]
只能与文件进行比较,但不能与目录进行比较?
答案1
rsync
在本地工作并对文件时间戳和文件大小进行测试。
rsync --archive /path/to/source/ /path/to/destination/
您也可以rsync
在单个文件上使用。
答案2
为什么不cp
?
\cp -f /path/to/dir1/* /path/to/dir2/