Як я можу виключити файли за замовчуванням за допомогою rsync?


12

Як я можу виключити файли за замовчуванням за допомогою rsync? Ось як починається мій звичайний синтаксис rsync:

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

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

Чи можливо мати якісь за замовчуванням виключення для rsync при виклику з командного рядка, як у моєму синтаксисі за замовчуванням вище?

Відповіді:


10

Додайте свої виключення до файлу, а потім використовуйте --exclude-from = / path / to / isključie_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 --включити "bin /" --exclude "/ *" / source_dir / / dest_dir /
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.