我对 rsync 的排除感到困惑。
我正在尝试备份以 / 开头的所有内容,但排除 /media/ /mnt/ /home/files/ 和 /home/backup
sudo rsync -a \
--progress \
--stats \
--exclude-from=/home/files/ \
--exclude-from=/media/ \
--exclude-from=/mnt/ \
--exclude-from=/home/backup/ \
/ /home/backup
行不通。
我最终将文件复制到 /home/backup/home/backup/... 我读到我必须编写相对于我的传输根的排除,但我猜如果 / 是我的传输根,那么 /media/ 应该相对于对吗?
答案1
man rsync
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
except-from 用于指向列出您不需要的文件夹的文件。尝试选项--排除
答案2
你的语法不正确;这就是为什么它不起作用。
你说:
--exclude-from=/home/backup/
当你应该简单地说
--exclude="/home/backup/*"
另外,您没有使用
--delete-excluded
可以同步目录的开关。
至于你最后的问题:是的,在你的情况下,你指定/
为 rsync 的开始。因此,如果您排除,"tmp/*"
那么它确实是相对于的/
,所以它与指定相同"/tmp/*"