Как я могу исключить файлы по умолчанию с помощью rsync?


12

Как я могу исключить файлы по умолчанию с помощью rsync? Вот как начинается мой обычный синтаксис rsync:

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

Я часто упоминал о настройке /etc/rsyncd.confфайла, но, возможно, это больше для демона, чем для команды rsync.

Можно ли иметь некоторые исключения по умолчанию для rsync при вызове из командной строки, как в моем синтаксисе по умолчанию выше?

Ответы:


10

Добавьте исключения в файл, затем используйте --exclude-from = / path / to / exclude_file

например

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

# rsync --exclude-from=rsync.excludes

1
похоже, что синтаксис есть --exclude-fromи нет, --exclude-fileно в противном случае это, кажется, билет. Благодарность!
cwd

5

Нет, rsyncнет файла конфигурации по умолчанию, который он будет читать при вызове. Лучшее, что вы можете сделать, - это то, что говорит @ frogstarr78, и создать текстовый файл с шаблонами, именами файлов и каталогов, которые нужно исключить, а затем указать rsyncна них --exclude-from=filename.


2
rsync does not have a default configuration file- это разочаровывает
CWD

3

Хотя rsync не позволяет вам устанавливать параметры по умолчанию, вы можете создать скрипт-обертку и поместить его выше в $ PATH, чем двоичный файл rsync.

Это моя оболочка Rsync, которая живет в ~/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 "$@"

Это будет выглядеть для ~/.rsyncignore, ./.gitignore, ./.rsyncignoreфайлов и, если любой из них существуют, использовать их в качестве стандартных --exclude-fromаргументов.

Просто измените RSYNC и IGNORE_FILES в соответствии со своими предпочтениями.


0

--exclude "/ *" исключит все по умолчанию. Вот пример:

rsync -av --include "bin /" --exclude "/ *" / source_dir / / dest_dir /
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.