![无法使用 cw-rsync 排除目录名称](https://linux22.com/image/550765/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20cw-rsync%20%E6%8E%92%E9%99%A4%E7%9B%AE%E5%BD%95%E5%90%8D%E7%A7%B0.png)
我每天在 Windows 7 下使用 cw-rsync 将文件从本地计算机复制到在 Linux 机器上运行的 rsync 服务器。除了我似乎无法正确排除目录名称之外,它运行良好。现在,在我的排除文件中,我有:
My Documents/
My Downloads/
这有效,但也有排除任何仅称为“我的”或“文档”或“下载”的目录的效果
我尝试过在名字两边使用引号,但没用。有什么想法吗?
答案1
事实上,我刚刚用最新的 cygwin rsync 尝试过这个,你是对的。使用排除文件无法排除名称中有空格的文件夹。但是它可以在文件夹本身仍处于同步状态时排除其内容。
我使用以下内容进行测试:
My\ Documents/*
注意\
要转义空格。但是,My Documents"
即使源端有一些内容,文件夹仍会在目标端创建,但仍为空。
我发现(至少对于 Cygwin rsync)该--exclude=
参数即使有空格也能正常工作:
rsync [...] --exclude='My Documents'
仅排除整个文件夹。
因此,您似乎在 rsync 解析排除文件时遇到了错误。但是使用参数--exclude=
可以解决这个问题 - 最坏的情况是编写自己的包装器读取排除文件并为每一行分配一个排除参数。