Rsync 在 Linux 中排除檔案和目錄

Nilesh Katuwal 2023年1月30日 2022年5月11日
  1. 在 Linux 中排除具有指定副檔名的所有檔案
  2. 在 Linux 中使用 -exclude 選項排除特定目錄
  3. 在 Linux 中排除多個目錄
Rsync 在 Linux 中排除檔案和目錄

rsync 是一個強大的命令列工具,用於使用遠端 shell 在兩個站點之間同步檔案和目錄。

使用 rsync 命令,你可以在系統之間複製資料和檔案並進行額外備份。

此外,你可以根據名稱和位置從資料副本中排除一個或多個檔案或資料夾。

在 Linux 中排除具有指定副檔名的所有檔案

也可以排除具有指定副檔名的檔案。執行以下命令以排除所有帶有 .txt 副檔名的檔案,例如:

$ rsync -avz --exclude=*.txt source/ destination

輸出:

sending incremental file list
thanosdir2/thanosdir3/

sent 203 bytes  received 20 bytes  446.00 bytes/sec
total size is 0  speedup is 0.00

在 Linux 中使用 -exclude 選項排除特定目錄

也可以禁止從指定目錄執行同步或複製操作。目錄名稱是使用 -exclude 選項指定的。

在下面的示例中,我們將從列表中排除目錄 thanosdir

$ rsync -avrz --exclude=thanosdir3 source/ destination

輸出:

sending incremental file list
created directory destination
./
thanos.txt
thanos1.txt
thanos2.txt
thanosdir/
thanosdir/thanosdir1/
thanosdir2/
thanosdir4/

sent 391 bytes  received 130 bytes  1,042.00 bytes/sec
total size is 0  speedup is 0.00

在 Linux 中排除多個目錄

你還可以過濾掉任何符合特定模式的目錄。例如,應排除 source 下以字母 t 開頭的任何目錄:

$ rsync -avrz --exclude=t* source/ destination

輸出:

sending incremental file list

sent 56 bytes  received 12 bytes  136.00 bytes/sec
total size is 0  speedup is 0.00

如輸出所示,所有帶有字母 t 的目錄都被排除在外。