Bash
查找並替換 2 個目錄之間的所有相同文件
我想在 中找到
dir1
具有相應相同文件名的所有文件dir2
,並將它們替換為 中的文件dir2
。例如:
dir1: first.txt second.txt dir2: third.txt first.txt
所以我想從
dir1
舊文件中刪除並用fromfirst.txt
替換它。first.txt``dir2
如何使用 Bash 終端實現這一點?
實際上,有一個命令可以完全按照您的要求執行。
rsync -av --existing dir2/ dir1/
僅當文件已存在於 dir1 中時,這才會遞歸地將文件從 dir2 複製到 dir1。
這些
-av
選項是您通常用於使用 rsync 複製文件的選項。該
--existing
選項告訴rsync
跳過在接收器上創建新文件。您必須在命令行的 dir2/ 上使用尾部斜杠,因為
rsync
與斜杠中的大多數命令不同的行為對 rsync 有意義。
rsync
也可以在類似於 的網路上使用scp
。
rsync
可以處理許多其他類型的文件同步、更新和備份任務。