我试图复制名称以foo开头的所有XML文件
rsync /source/dir/foo*.xml /dest/dir
如果没有任何符合此模式的文件,则rsync会抛出错误:
rsync: link_stat "/source/dir/foo*.xml" failed: No such file or directory (2)
我应该关心这个错误吗?有没有办法压制它?如果至少有一个文件与模式匹配,那么命令运行时没有错误。
答案 0 :(得分:1)
有一个 bash 设置可以避免这种情况:
shopt -s failglob
从手册页:
<强> failglob 强>
如果设置,则在路径名扩展期间无法匹配文件名的模式会导致扩展错误。
否则,您可以使用if
在没有任何操作的情况下运行rsync。
如果你确实想要不同步任何内容,以便它删除不存在的文件,那么命令可能是这样的:
rsync --include 'foo*.xml' \
--exclude '**' \
--delete \
/source/dir/ /dest/dir
尾随斜线很重要。