![](/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.