rsync --delete 的核心作用是:刪除目標目錄中「來源目錄不存在」的檔案,讓目標端與來源端保持一致。
它常用於以下場景:
- 同步時清理目標端的歷史冗餘檔案
- 透過空目錄快速清空目標目錄
基礎語法
|
|
-a:封存模式,保留權限、時間戳等屬性--delete:刪除目標端多出的檔案
關鍵注意:來源目錄 結尾是否帶 / 會影響同步行為。帶 / 代表同步目錄內容,不帶 / 代表同步目錄本身。
用空目錄快速清空目標目錄
如果你的目標是「保留目錄結構但清空內容」,可以讓空目錄作為來源進行同步:
|
|
這種方式在大目錄場景下通常比逐一刪除更有效率,也更容易寫入自動化腳本。
常用擴展參數
--delete-before:先刪除再傳輸,在部分場景下效率更高--progress:顯示傳輸與處理進度
示例(清理 Nginx 日誌目錄):
|
|
使用建議
- 先用
--dry-run預演,確認刪除範圍再執行 - 在生產環境操作前,建議先備份目標目錄
- 對關鍵路徑執行時,優先安排在低峰時段