Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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

3 Answers 3

up vote 6 down vote accepted

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

e.g.

# cat rsync.excludes
.ht*
error_log
.DS*
old
...

# rsync --exclude-from=rsync.excludes
share|improve this answer
1  
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

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

#!/bin/sh

# Set path to the rsync binary
RSYNC=/usr/bin/rsync

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

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

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

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
2  
This would have been clear by reading the manual. –  Kusalananda Sep 29 '11 at 15:25

Your Answer

 
discard

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.