我想找到dir1
中具有相應相同文件名的所有文件dir2
,並將它們替換為 中的文件dir2
。
例如:
dir1: first.txt second.txt
dir2: third.txt first.txt
所以我想從dir1
舊first.txt
文件中刪除並將其替換為first.txt
from 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/