![排除文件列表中的通配符是为了表里不一](https://linux22.com/image/57018/%E6%8E%92%E9%99%A4%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E9%80%9A%E9%85%8D%E7%AC%A6%E6%98%AF%E4%B8%BA%E4%BA%86%E8%A1%A8%E9%87%8C%E4%B8%8D%E4%B8%80.png)
我试图从备份中排除每个主目录中的“批量”文件夹。为此,我有一条线
- /data/home/*/bulk
在我的排除文件列表文件中。
然而,这似乎没有被认识到:
Warning: file specification '/data/home/*/bulk' in filelist exclude-list-test.txt
doesn't start with correct prefix /data/home/kay/bulk. Ignoring.
有办法吗?
顺便说一句:该格式通常与 rsync 的排除兼容吗?我有一个工作排除列表,其中该通配符表达式起作用。
答案1
问题可能在于由于 rsync 的口是心非而错误地将带有通配符的路径传递给了 rsync。看下面的例子。这是通过脚本中的环境变量将排除传递给 rsync 的真实示例:
EXCLUDES="--exclude=/etc/blkid.tab --exclude=/root/dir1 --exclude='*.sql'"
请注意,引号 '' 用于分隔包含星号的条目,以防止 shell 扩展此通配符。尝试在 except-list-test.txt 文件中使用引号。