概述
`rsync --delete` 會將來源目錄的內容複製到目標目錄,同時刪除目標目錄中獨有的檔案或目錄,從而使兩個位置完全同步。它主要用於備份同步、網頁伺服器部署、開發環境同步等。
主要特點
- 來源目錄與目標目錄的完全同步
- 刪除目標目錄中獨有的檔案/目錄
- 透過增量傳輸實現高效同步
- 支援透過網路進行遠端同步
主要選項
與 `rsync --delete` 一起使用的主要選項。特別是 `--dry-run` 選項,為了防止災難性錯誤,務必先使用它。
同步控制
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`rsync-delete` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
`rsync --delete` 是個強大的功能,因此務必始終使用 `--dry-run` 選項先確認結果。
預覽刪除操作 (必需)
rsync -avn --delete /path/to/source/ /path/to/destination/
同步來源目錄 (`/path/to/source`) 和目標目錄 (`/path/to/destination`) 時,預覽哪些檔案將被刪除。實際不會進行任何變更。
實際同步與刪除
rsync -av --delete /path/to/source/ /path/to/destination/
在預覽確認安全後,實際同步來源與目標,並刪除目標中獨有的檔案。`-a` 表示歸檔模式,`-v` 表示詳細輸出。
排除特定檔案/目錄進行同步與刪除
rsync -av --delete --exclude='logs/' --exclude='*.tmp' /path/to/source/ /path/to/destination/
刪除目標中不存在於來源的檔案,同時排除特定檔案或目錄(例如 `logs/` 目錄和 `*.tmp` 檔案)進行同步。
與遠端伺服器同步與刪除
rsync -av --delete /path/to/local/source/ user@remote_host:/path/to/remote/destination/
將本地目錄的內容與遠端伺服器的目錄同步,並刪除遠端伺服器中獨有的檔案。透過 SSH 安全傳輸。
提示與注意事項
`rsync --delete` 可能是一個非常強大且具破壞性的命令,因此在使用時務必牢記以下事項。
最重要的注意事項
- **務必先使用 `--dry-run` (-n)**:在實際執行前,請務必確認哪些檔案將被刪除。
- **確認來源 (Source) 和目標 (Destination) 路徑**:錯誤的路徑指定可能導致意外的資料遺失。
- **備份是必須的**:處理重要資料時,請務必事先進行備份。
- **斜線 (/) 的重要性**:來源路徑末尾的斜線表示複製目錄的「內容」,沒有斜線則表示複製「目錄本身」。與 `--delete` 一起使用時,這個差異很重要。
路徑斜線 (/) 的差異
來源路徑結尾斜線的存在與否會影響其行為。
- `rsync -av --delete source/ dest/`: 將 `source` 目錄的*內容*複製到 `dest`,並刪除 `dest` 中獨有的檔案。`source` 目錄本身不會在 `dest` 中建立。
- `rsync -av --delete source dest/`: 將 `source` 目錄*本身*複製到 `dest` 目錄內。也就是說,會建立 `dest/source/` 路徑。如果 `dest` 中已存在與 `source` 同名的其他檔案,則可能會被刪除。