以下命令將檔案從相對於 $MIRROR_SOURCE 的 $MIRROR_SOURCES 遞歸複製到 $MIRROR_DEST;但刪除標誌不起作用。
rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST
答案1
讀- 刪除仔細man rsync
地,強調我的:
這告訴 rsync 從接收端刪除無關的檔案(不在傳送端的檔案),但是僅適用於正在同步的目錄。您必須要求 rsync 發送整個目錄(例如“dir”或“dir/”),而不使用目錄內容的通配符(例如“dir/*”),因為通配符由 shell 擴展,因此 rsync 會得到一個請求傳輸單個文件,而不是檔案的父目錄。 除非您使用 --delete-excluded 選項,否則從傳輸中排除的檔案也不會被刪除或將規則標記為僅在傳送端相符(請參閱「過濾規則」部分中的包含/排除修飾符)。
故事的底線是,它僅針對您指定要同步的內容執行此操作,並且取決於您是否指定了通配符,如果您不希望這樣做,而是希望它在任何地方發生,那麼您可以指定--delete-excluded
旗幟也是如此。