簡體   English   中英

如何將不同的內容文件從一個目錄復制到另一個目錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM