Запрос Rsync --exclude-from= в Ubuntu 18.04

Запрос Rsync --exclude-from= в Ubuntu 18.04

Я пытаюсь создать резервную копию своей домашней папки на внешнем диске с помощью следующей команды:

rsync -acu --delete --exclude-from='/home/chh1/rsync_exclude.txt' /home/ /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422/home_backup/

Файл --exclude-from=

/home/chh1/rsync_exclude.txt

содержит следующие записи:

.cache
crewdb.bak.sql

Я действительно хочу исключить .cache, а также .dconf, который содержится в нем, поскольку я хочу исключить файлы, требующие прав root, и ненужные данные .cache, содержащиеся в /home/chh1/.cache.

Когда я бегу

find ~ -name ".cache"

Я получаю следующий вывод:

/home/chh1/snap/pdfmixtool/common/.cache
/home/chh1/snap/gnome-system-monitor/common/.cache
/home/chh1/snap/okular/63/.cache
/home/chh1/snap/freemind/common/.cache
/home/chh1/.cache
find: ‘/home/chh1/.cache/dconf’: Permission denied

Я действительно хочу исключить

/home/chh1/.cache

что также позаботится о dconf и общем мусоре .cache. Однако я не хочу исключать другие каталоги .cache, найденные при запуске команды find.

поскольку --exclude-from= соответствует только шаблонам с тем, что находится в файле исключений, как я могу указать путь, а не шаблон и желательно в файле исключений? Есть ли способ?

Спасибо за вашу помощь, это действительно очень ценно!

решение1

Ваш список исключений может также иметь абсолютные имена, которые соответствуют начальному каталогу, /home/в вашем случае. Используйте строку

/chh1/.cache

вместо .cacheтого, чтобы только исключить /home/ /chh1/.cache, т.е./home/chh1/.cache

Связанный контент