Я пытаюсь создать резервную копию своего домашнего каталога с помощью rsync, и я хочу исключить некоторые каталоги, содержащие ненужный мусор. Я хочу специально исключить /home/ben/.ccache и /home/ben/build. К сожалению, документация для rsync была перегружена информацией и не ответила на мой вопрос. Это то, что я пробовал:
rsync -arv --exclude "/home/ben/.ccache:/home/ben/build" /home/ben /media/ben/thumbdrive/
Как правильно это сделать?
Хорошо, я чувствую себя действительно глупо. Еще до того, как я опубликовал этот вопрос, мой друг показал мне, как это сделать, и это действительно просто. Чтобы исключить несколько каталогов, вы просто используете несколько --exclude=path переключатели. Итак, моя команда, правильно написанная выше, выглядит следующим образом:
rsync -arv --exclude=.ccache --exclude=build /home/ben /media/ben/thumbdrive/
Примечание: Используйте относительные пути с помощью exclude. Пути указаны относительно исходного каталога, здесь /home/ben.
Если необходимо исключить несколько каталогов и/или файлов, создайте текстовый файл и используйте --exclude-from переключатель. Создайте файл с именем exclude_me.txt и в нем перечислите ваши исключения.Пример (/home/ben/exclude_me.txt):
.ccachebuild.java.gvfs.xsession-errors
Тогда ваш rsync будет выглядеть примерно так:
rsync -arv --exclude-from='/home/ben/exclude_me.txt' /home/ben /media/ben/thumbdrive/
Это некоторая информация о правилах фильтрации, которая может помочь:
-
/dir/ означает исключить корневую папку /dir
-
/dir/* означает получить корневую папку /dir но не содержание
dir/ означает исключить любую папку в любом месте, где имя содержит dir/
Примеры исключены: /dir/, /usr/share/directory/, /var/spool/dir//var/spool/lpd/cf означает пропустить файлы, начинающиеся с cf в любой папке внутри /var/spool/lpd
Также смотрите правила фильтрации раздел на справочной странице.
Вы также можете исключить несколько путей в фигурных скобках:
rsync -arv --exclude={.ccache,build} /home/ben /media/ben/thumbdrive/
Просто хотел сказать, что флаг a уже подразумевает r
-a, --archive режим архивирования; равен -rlptgoD (no -H,-A,-X)