Ubuntu 18.04 上的 Rsync --exclude-from= 查询

Ubuntu 18.04 上的 Rsync --exclude-from= 查询

我正在尝试使用以下命令将我的主文件夹备份到外部驱动器:

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

相关内容