尋找並取代 2 個目錄之間的所有相同文件

尋找並取代 2 個目錄之間的所有相同文件

我想找到dir1中具有相應相同文件名的所有文件dir2,並將它們替換為 中的文件dir2

例如:

dir1: first.txt second.txt
dir2: third.txt first.txt

所以我想從dir1first.txt文件中刪除並將其替換為first.txtfrom dir2.

如何使用 Bash 終端實現這一點?

答案1

實際上,有一個命令可以完全滿足您的要求。

rsync -av --existing dir2/ dir1/

只有當檔案已存在於 dir1 中時,這才會將檔案從 dir2 遞歸複製到 dir1 中。

這些-av選項是您通常用於使用 rsync 複製檔案的選項。

--existing選項指示rsync跳過在接收器上建立新檔案。

您必須在命令列上的 dir2/ 上添加尾部斜杠,因為rsync斜杠中的大多數命令的行為與 rsync 具有含義不同。

rsync也可以透過類似 的網路使用scp

rsync可以處理許多其他類型的檔案同步、更新和備份任務。

答案2

rsync 可以使用下列--existing選項來做到這一點:

rsync -v --existing dir2/* dir1/

相關內容