在Linux中,rsync 同步数据时,如何过滤出所有.txt的文件不同步?
在Linux中,使用rsync
命令同步数据时,若要过滤掉所有.txt
文件,不将其纳入同步范围,可以通过--exclude
选项来实现。具体做法如下:
rsync -avz --exclude='*.txt' 源目录/ 目标目录/
这里对命令参数进行解释:
-
-a
或--archive
:这是一个综合选项,等于-rlptgoD
(递归、保留链接、保留权限、保留时间戳、保留所有权、保留群组、保留设备文件及特殊文件)。它能保持源目录的大多数属性不变,适合于备份和镜像操作。 -
-v
或--verbose
:详细模式输出,展示哪些文件正在被传输。 -
-z
或--compress
:传输过程中进行压缩,加快传输速度并减少带宽消耗。 -
--exclude='*.txt'
:这是关键部分,用来指定排除规则。星号*
是一个通配符,代表任意字符序列,因此*.txt
会匹配所有以.txt
结尾的文件。这意味着任何.txt
文件都不会被同步。 -
源目录/
:指定要同步的源目录路径,末尾的斜杠表示同步目录内容而非目录本身。 -
目标目录/
:指定数据同步的目标目录路径,同样地,末尾斜杠表示内容同步。
综上所述,您可以执行一次同步操作,期间所有.txt
文件都会被自动排除在外,不会被复制到目标目录中。