rsync link_stat使用通配符时没有此类文件或目录

时间:2016-03-04 14:48:51

标签: linux rsync

我试图复制名称以foo开头的所有XML文件

rsync /source/dir/foo*.xml /dest/dir

如果没有任何符合此模式的文件,则rsync会抛出错误:

rsync: link_stat "/source/dir/foo*.xml" failed: No such file or directory (2)

我应该关心这个错误吗?有没有办法压制它?如果至少有一个文件与模式匹配,那么命令运行时没有错误。

1 个答案:

答案 0 :(得分:1)

有一个 bash 设置可以避免这种情况:

shopt -s failglob

从手册页:

  

<强> failglob
   如果设置,则在路径名扩展期间无法匹配文件名的模式会导致扩展错误。

否则,您可以使用if在没有任何操作的情况下运行rsync。

如果你确实想要不同步任何内容,以便它删除不存在的文件,那么命令可能是这样的:

rsync --include 'foo*.xml' \
      --exclude '**' \
      --delete \
      /source/dir/ /dest/dir

尾随斜线很重要。