我想同步两个目录,不包括一些文件。我尝试了下面的代码,但排除失败。
FILES=abc.zip,hh.sh,Workarea/test/hi.jpg
rsync -av --exclude={$FILES} /home/test/ /home/test2
为了验证它,我执行为
# sh -x test.sh
+ FILES=abc.zip,hh.sh,Workarea/test/hi.jpg
+ rsync -av '--exclude={abc.zip,hh.sh,Workarea/test/hi.jpg}' /home/test/ /home/test2
您不能将
bash
扩展{a,b,c}
用作文字以外的任何东西(您不能将其放入a,b,c
或什{a,b,c}
至变量中并直接对其进行扩展。您可以使用eval
,但这会带来很多意想不到的并发症,我真的不推荐它:这是一个更好的替代建议,它使用
bash
数组功能来保存一组排除项。rsync
然后我们通过迭代来构建命令行。