Bash

查找並替換 2 個目錄之間的所有相同文件

  • November 3, 2015

我想在 中找到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可以處理許多其他類型的文件同步、更新和備份任務。

引用自:https://unix.stackexchange.com/questions/240443