rsync:如何通过外部排除文件排除具有特殊字符的目录

nat*_*yer 4 bash rsync command-line

我正在尝试使用 cron 自动化的 rsync 脚本备份服务器。现在我正在使用命令:

rsync -avz --progress --exclude-from "/Users/user/Scripts/exclude.txt" -e ssh user@server:$REMOTE_PATH $LOCAL_PATH > /tmp/rsync.log

在 bash 脚本中定义了 $REMOTE_PATH 和 $LOCAL_PATH。

我有一个名为 #recycle 的目录,我想跳过它,但不确定如何用文件排除它。如果我使用选项 --exclude '#recycle/',那么它会跳过目录就好了。但是,如果我使用 --exclude-from 标记包含上面的选项,则文件仅包含以下行:

#recycle/
Run Code Online (Sandbox Code Playgroud)

那么它不起作用。我也试过\#recycle/,但转义英镑符号似乎并不能解决问题。我很确定英镑导致了所有问题,但我无法控制目录名称。关于如何解决这个问题的任何想法?

谢谢!

tha*_*guy 6

以开头#的行在排除文件中被忽略,是的。

您可以改为使用[#]recyclewhich 匹配相同的内容,但不会作为注释丢弃。