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

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

如果没有任何文件与此模式匹配,则rsync会引发错误:
rsync: link_stat "/source/dir/foo*.xml" failed: No such file or directory (2)

我应该关心这个错误吗?有没有办法抑制它?如果至少有一个文件与该模式匹配,则该命令将运行而不会出错。

最佳答案

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

shopt -s failglob

从手册页:



否则,您可以使用if在无事可做时不运行rsync。

如果您确实确实不希望进行任何同步,以使其删除不存在的文件,那么该命令可能是这样的:
rsync --include 'foo*.xml' \
      --exclude '**' \
      --delete \
      /source/dir/ /dest/dir

斜杠很重要。

关于linux - rsync link_stat使用通配符时没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35798918/

10-15 01:10