Я пытаюсь создать резервную копию своей домашней папки на внешнем диске с помощью следующей команды:
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