Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I exclude files by default with rsync? Here is how my normal rsync syntax starts out:

rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ...

I've seen a lot of mention of configuring the /etc/rsyncd.conf file, but maybe that's more for the daemon than the rsync command.

Is it possible to have some default excludes for rsync when called from the command line like in my default syntax above?

share|improve this question
up vote 7 down vote accepted

Add your excludes to a file, then use --exclude-from=/path/to/exclude_file


# cat rsync.excludes

# rsync --exclude-from=rsync.excludes
share|improve this answer
looks like the syntax is --exclude-from and not --exclude-file but otherwise this seems to be the ticket. thanks! – cwd Sep 29 '11 at 15:12

No, rsync does not have a default configuration file that it will read upon invocation. The best you can do is what @frogstarr78 says and create a text file with patterns, file and directory names to exclude, and then point rsync to it with --exclude-from=filename.

share|improve this answer
rsync does not have a default configuration file - that's disappointing – cwd Sep 29 '11 at 15:06
This would have been clear by reading the manual. – Kusalananda Sep 29 '11 at 15:25

While rsync doesn't let you set default options, you can create a wrapper script and put it higher up in your $PATH than the rsync binary.

This is is my rsync wrapper which lives in ~/bin/rsync


# Set path to the rsync binary

# Look for these exclude files
IGNORE_FILES=(~/.rsyncignore ./.gitignore ./.rsyncignore)

for f in ${IGNORE_FILES[@]}; do
  if [[ -e $f ]]; then
    EXCLUDE_FROM="$EXCLUDE_FROM --exclude-from=$f "

It'll look for ~/.rsyncignore, ./.gitignore, ./.rsyncignore files and, if any of them exist, use them as default --exclude-from arguments.

Just change the RSYNC and IGNORE_FILES to suit your envrionment and preferences.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.