Using the rsync command, we can exclude a specific file or directory, multiple files, or directories. Also, we can exclude multiple files or directories based on a pattern.
Here at Bobcares, we have seen several such rsync command related queries as part of our Server Management Services for web hosts and online service providers.
Today we’ll take a look at how to exclude files using the rsync command.
How to Exclude Files and Directories with Rsync
Here are the different ways our Support Engineers follow to exclude files and directories using the rsync command.
Exclude a Specific File
We exclude a specific file by passing the relative path to the file to the –exclude option.
In the below example the file src_directory/file.txt will not be transferred:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
Exclude a Specific Directory
Excluding a specific directory is the same as excluding a file. We just need to pass the relative path to the directory to the –exclude option.
rsync -a --exclude 'dir1' src_directory/ dst_directory/
However, if we wish to exclude only the directory content but not the directory itself then we use dir1/* instead of dir1:
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
Exclude Multiple Files or Directories
To exclude multiple files or directories, we simply specify –exclude options multiple times.
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
We can also specify –exclude option once and can list the files and directories we want to exclude in curly braces {} separated by a comma as shown below:
rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/
In case, if the number of the files and/or directories we want to exclude is large then we specify the files and directories in a file and pass the file to the –exclude-from option. Here is the command in which exclude-file.txt is the file where we have placed all the files and directories we wish to exclude.
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
exclude-file.txt file1.txt dir1/* dir2
Exclude Multiple Files or Directories Based on a Pattern
Using rsync we can also exclude files and directories based on a pattern that matches the file or directory name.
For example, to exclude all .jpg files, we run the below command.
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
But if we wish to exclude all other files and directories except the files ending with .jpg then here is the command for it.
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
[Need any further assistance with rsync command queries? – We’d be happy to help you.]
Conclusion
In today’s writeup, we saw how our Support Engineers exclude files and directories using the rsync command.
0 Comments