1 背景
在使用rsync进行文件同步的时候,需要排除一些文件或目录。此时可使用rsync命令的–exlude选项,使用方法如下:
rsync [OPTIONS] --exclude 'file_or_directory' source/ destination/
通过文件样式排除文件
rsync -av --exclude 'test*' sourcedir/ destinationdir/
rsync -av --exclude '*3' sourcedir/ destinationdir/
rsync -av --exclude '*.iso' sourcedir/ destinationdir/
根据文件大小排除
通过文件大小进行排除的时候,不能使用–exclude选项
rsync -av --max_size=500m sourcedir/ destinationdir/ # 排除所有大于500MB的文件
rsync -av --min_size=1m sourcedir/ destinationdir/ # 排除所有小于1MB的文件
排除多个文件或目录
rsync -av --exclude '*.txt' --exclude 'dir3' --exclude 'dir4' sourcedir/ destinationdir/
上面的命令可以简化为如下形式:
rsync -av --exclude={'*.txt','dir3','dir4'} sourcedir/ destinationdir/
从列表中移除文件和列表
当有大量的文件或目录需要移除的时候,可使用–exclude-from选项。首先需要创建一个文本文件,里面包含需要排除的文件或目录,假设文本文件名称为list.txt,内容如下:
testfile2.txt
*.txt
dir3
dir4
test*
*2*
则使用下面的命令进行排除:
rsync -av -- exclude-from={'list.txt'} sourcedir/ destinationdir/
Reference
https://phoenixnap.com/kb/rsync-exclude-files-and-directories