![](/img/trans.png)
[英]How to copy files with a particular extension from one directory to another in linux
[英]How do I copy differing content files from one directory to another?
存在两个目录: a/
和b/
。
我想将所有文件(递归地)从a/
复制到b/
。
但是,我只想复制a
文件,如果它的内容不同于已经存在的b
文件。 如果相应的b
文件不存在,那么您仍将复制a
文件。
*“对应文件”指的是具有相同名称和来自其父目录的相对路径的文件。
注意:我不想覆盖具有完全相同内容的b
文件的原因是因为b
目录正被另一个程序监视,并且我不希望文件日期更改而导致该程序执行更多工作超出要求。
我实质上是在寻找一种在每个文件上执行差异检查时执行cp -rf a/ b/
。 如果文件不同,请执行复制;否则,请执行以下操作。 否则跳过副本。
我看到cp
有一个更新标志:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the
destination file is missing
但这不起作用,因为我不关心较新的文件; 我担心文件内容不同。
任何外壳语言都可以。
我一直在尝试通过将diff检查注入到find命令中来使其工作:
find a/ ??? -exec cp {} b \;
在两个目录之间执行此操作似乎并不罕见,因此我希望有一种优雅的命令行解决方案,这使我不得不编写python脚本。
您可以使用rsync实现此目的。 仅当源文件夹中有任何新更新时,文件或目录才会更新。
$rsync -av --progress sourcefolder destinationfolder
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.