rsync排除問題

rsync排除問題

我有大量具有類似子資料夾結構的目錄。每個目錄都有一個子目錄“s”。有些目錄的名稱中有“_tmp”前綴。

我想要的是將所有主目錄複製到新伺服器,但將 s-subdirs 和 _tmp -dirst 保留在傳輸之外。

在 OSX(rsync v.2.6.9)上,此命令運作良好:

rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/

但在 Ubuntu(rsync v. 3.0.7)上,相同的命令失敗,_tmps 已退出,但 s 資料夾仍在。

答案1

我會要求您在命令前面添加以echo查看您正在運行的內容。

echo rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/

根據您的 shell、shell 設定和目前目錄的內容,未加引號的內容*_tmp可能會擴展為特定檔案(該檔案可能與您要排除的大多數檔案不符)。應echo顯示實際發生的情況。

您應該用引號保護星號以防止 shell 擴展。

rsync -avz --exclude '*/s/*' --exclude '*_tmp' SOURCE/ DEST/

相關內容