我正在尝试使用以下命令将我的主文件夹备份到外部驱动器:
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权限的文件和/home/chh1/.cache中包含的不必要的.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 垃圾。但是,我不想排除运行 find 命令时找到的其他 .cache 目录。
由于 --exclude-from= 仅将模式与排除文件中的内容匹配,我该如何指定路径而不是模式,最好是在排除文件内?有办法吗?
谢谢您的帮助,我们非常感激!
答案1
您的排除列表也可以有绝对名称,在您的情况下,该名称与起始目录匹配/home/
。使用行
/chh1/.cache
而不是.cache
仅仅排除/home/
/chh1/.cache
,即/home/chh1/.cache