首頁 > 檔案與目錄管理 > rsync-delete

rsync --delete:同步來源並刪除目標檔案

`rsync` 命令的 `--delete` 選項在同步來源目錄和目標目錄時,會刪除目標目錄中不存在於來源目錄的檔案。這在備份或鏡像時,希望將目標目錄與來源目錄完全一致時非常有用。由於這是一個強大的功能,請務必謹慎使用。

概述

`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` 同名的其他檔案,則可能會被刪除。

相同類別命令