Exclude multiple files and directories with rsync

Exclude multiple files and directories with rsync

Rsync is very powerful tool to take backups, or sync files and directories between two different locations (or servers).

In a typical backup situation, you might want to exclude one or more files (or directories) from the backup. You might also want to exclude a specific file type from rsync. Following are some examples on how to do this:

1. EXCLUDE A SPECIFIC DIRECTORY

If you don’t want to sync the dir1 (including all it’s subdirectories) from the source to the destination folder, use the rsync –exclude option as shown below.

$ rsync -avz --exclude 'dir1' source/ destination/

2. EXCLUDE MULTIPLE DIRECTORIES THAT MATCHES A PATTERN

The following example will exclude any directory (or subdirectories) under source/ that matches the pattern “dir*”

$ rsync -avz --exclude 'dir*' source/ destination/

3. EXCLUDE A SPECIFIC FILE

To exclude a specific file, use the relative path of the file in the exclude option as shown below.

$ rsync -avz --exclude 'dir1/somefile.txt' source/ destination/

4. EXCLUDE A SPECIFIC FILE TYPE

To exclude a specific file type that has a specific extension, use the appropriate pattern. For example, to exclude all the files that contains .txt as extension, do the following.

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

5. EXCLUDE MULTIPLES FILES AND DIRECTORIES AT THE SAME TIME

When you want to exclude multiple files and directories, you can always specify multiple rsync exclude options in the command line as shown below.

$ rsync -avz --exclude file1.txt --exclude dir3/file4.txt source/ destination/

So, the better way is to use rsync –exclude-from option as shown below, where you can list all the files (and directories) you want to exclude in a file.

First, create a text file with a list of all the files and directories you don’t want to backup. This is the list of files and directories you want to exclude from the rsync.

$ vim exclude-list.txt
file1.txt
dir3/file4.txt

Next, execute the rsync using –exclude-from option with the exclude-list.txt as shown below.

$ rsync -avz --exclude-from 'exclude-list.txt' source/ destination/
0 (0)
Article Rating (No Votes)
Rate this article
Attachments
There are no attachments for this article.
Comments
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
Linux - Cannot login from remote console but can access via ssh
Viewed 4746 times since Fri, Jun 8, 2018
Linux – Securing your important files with XFS extendend attributes
Viewed 7390 times since Wed, Jul 25, 2018
20 Linux Command Tips and Tricks That Will Save You A Lot of Time linux
Viewed 4409 times since Thu, Apr 18, 2019
How to run command or code in parallel in bash shell under Linux or Unix
Viewed 2965 times since Tue, Aug 6, 2019
What UUIDs can do for you
Viewed 1639 times since Tue, Jul 17, 2018
How to encrypt a partition with DM-Crypt LUKS on Linux
Viewed 8025 times since Fri, Jul 13, 2018
debian How to Upgrade Debian 8 Jessie to Debian 9 Stretch
Viewed 2168 times since Sun, Sep 23, 2018
30 Handy Bash Shell Aliases For Linux / Unix / MacOS
Viewed 4330 times since Thu, Feb 11, 2021
SSL HowTo: Decode CSR
Viewed 4759 times since Mon, Feb 18, 2019
YUM CRON Enabling automatic updates in Centos 7 and RHEL 7
Viewed 11751 times since Fri, Oct 26, 2018