概述
`rsync-progress` 並非獨立的命令,而是強大的檔案同步工具 `rsync` 的 `--progress` 選項所提供的顯示傳輸進度功能的一般稱呼。使用此功能可以在檔案傳輸過程中即時確認目前狀態,對於同步大型檔案或多個檔案非常有用。
主要特點
透過 `rsync` 的 `--progress` 選項可以獲得的主要資訊如下:
- 即時傳輸進度(百分比)
- 目前正在傳輸的檔案名稱
- 傳輸速度(例如:MB/s)
- 剩餘傳輸時間
主要選項
`rsync-progress` 利用 `rsync` 命令的選項。以下是與進度顯示一起常用的 `rsync` 選項:
進度與輸出
同步操作
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`rsync-progress` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
安裝
`rsync-progress` 並非需要額外安裝的命令,而是 `rsync` 命令的功能。大多數 Linux 發行版都預設安裝了 `rsync`,如果尚未安裝,可以使用以下命令進行安裝。
Debian/Ubuntu
sudo apt update && sudo apt install rsync
使用 APT 套件管理器安裝 `rsync`。
CentOS/RHEL
sudo yum install rsync
使用 YUM 套件管理器安裝 `rsync`。
Fedora
sudo dnf install rsync
使用 DNF 套件管理器安裝 `rsync`。
使用範例
以下是結合 `rsync` 命令和 `--progress` 選項來檢查檔案同步進度的各種範例:
同步本地目錄並顯示進度
rsync -avh --progress source_dir/ destination_dir/
將目前目錄的 `source_dir` 內容同步到 `destination_dir`,並顯示進度。
同步檔案到遠端伺服器並顯示進度
rsync -avz --progress local_files/ user@remote_host:/path/to/remote_dir/
將本地的 `local_files/` 目錄同步到遠端伺服器的 `user@remote_host:/path/to/remote_dir/`,並顯示進度。
建立 `rsync-progress` 別名 (alias)
alias rsync-progress='rsync -avh --progress'
可以建立一個包含常用 `rsync` 選項的 `rsync-progress` 別名,以便方便使用。此別名僅在目前的 shell 會話中有效,若要永久使用,則需將其添加到 shell 設定檔(例如:`~/.bashrc`、`~/.zshrc`)中。
使用別名進行本地同步
rsync-progress /path/to/source/ /path/to/destination/
使用上述建立的 `rsync-progress` 別名來同步本地目錄。
模擬刪除操作並顯示進度
rsync -avh --progress --delete --dry-run source_dir/ destination_dir/
不實際刪除檔案,而是使用 `--dry-run` 結合 `--delete` 選項,預覽哪些檔案會被刪除。
提示與注意事項
使用 `rsync` 和 `--progress` 選項時的實用提示和注意事項。
高效的選項組合
`--progress` 與 `-v` (verbose) 一起使用可以獲得更多資訊,與 `-h` (human-readable) 一起使用可以輕鬆查看檔案大小。`-a` (archive) 是大多數同步操作推薦使用的選項。
- `rsync -avh --progress source/ dest/` (最常見且有用的組合)
- `rsync -avz --progress source/ user@host:dest/` (遠端傳輸時添加壓縮)
`--dry-run` 的應用
特別是當使用 `--delete` 等破壞性選項時,務必先使用 `--dry-run` 選項預覽將會發生哪些變更。這對於防止意外的資料丟失至關重要。
考慮網路環境
傳輸到遠端伺服器時,`--compress` (`-z`) 選項可以節省網路頻寬,但會增加 CPU 使用量。如果網路速度足夠快,壓縮反而可能增加傳輸時間,因此應根據環境適當使用。
來源/目標路徑的斜線 (`/`) 注意事項
在來源路徑結尾加上斜線 (`source_dir/`) 會將 `source_dir` 的 *內容物* 複製到目標,而不加斜線 (`source_dir`) 則會將 `source_dir` *本身* 在目標目錄內建立。這個差異非常重要,需特別注意。