Rsync

如何將目錄同步到具有不同名稱的新目錄?

  • May 19, 2021

我正在進行數據傳輸,舊文件系統深深依賴於現在位於不同路徑上的目錄。這是一個線上儲存程式碼的 git 目錄。我無權移動或重命名它。

所以我能做的就是將此目錄同步到相同的舊路徑。但是目錄名稱也發生了變化。

有沒有一種簡單的方法可以將目錄同步到具有不同名稱的目標目錄?

如果要用於rsync遞歸地使dest目錄成為目錄的精確副本src

rsync -a src/ dest

rsync手冊頁解釋了這是如何工作的:

源上的尾部斜杠

$$ … $$避免$$ s $$在目的地創建一個額外的目錄級別。您可以將源的尾隨/視為“複製此目錄的內容”而不是“按名稱複製目錄”$$ … $$

🚀 快速入門

跑:

rsync -av --exclude='path1/in/source' --exclude='path2/in/source' [source]/ [destination]

🔖 備註

  • -avr將創建一個名為[destination].

  • sourcesource/創造不同的結果:

    • source— 將文件夾源複製到目標。
    • source/— 將源的內容複製到目標。
  • 要排除許多文件:

    • --exclude-from=FILEFILE是包含要排除的其他文件或目錄的文件的名稱。
  • --exclude也可能包含萬用字元:

    • 例如--exclude=*/.svn*

修改自:https ://stackoverflow.com/a/2194500/749232


🎟 例子

起始文件夾結構:

.
├── destination
└── source
   ├── fileToCopy.rtf
   └── fileToExclude.rtf

跑:

rsync -av --exclude='fileToCopy.rtf' source/ destination

結束文件夾結構:

.
├── destination
│   └── fileToExclude.rtf
└── source
   ├── fileToCopy.rtf
   └── fileToExclude.rtf

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