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 的目录都被排除在外。