从 rsync 中排除符号链接,无需过多通知

从 rsync 中排除符号链接,无需过多通知

我想从 中排除符号链接rsync,但每个链接--no-links都充斥着我的终端skipping non-regular file,从而将焦点从 中的其他重要信息中转移出来rsync

如何排除链接而不被每个单独的事件困扰?以下是不可接受的解决方案:

  1. 使用该-q选项,因为这会抑制全部输出来自rsync
  2. 过滤消息grep
  3. 仔细更改链接周围的包含文件并不是一个好的选择。

如果这是不可能的(看起来可能是这样):为什么跳过非常规文件被认为如此重要,以至于即使用户指定要排除它们,也会明确警告用户有关其中的每一个文件?我很想把这个问题当作是开发商的问题。

答案1

如果您不想看到有关的消息任何--info=skip0跳过的文件,如果您的版本rsync不太旧,则可以使用。

如果您不想看到跳过的符号链接上的消息,但是如果跳过任何其他文件,则需要消息,那么不幸的是,rsync输出控制选项似乎对此不够细粒度。

请参阅参考资料rsync --info=help中可以在输出中调整的内容列表rsync

答案2

您可以用于--files-from定义要同步的文件列表,并用于find排除符号链接:

rsync --files-from=<(find . ! -type l -print) . TARGET/

答案3

尝试在命令后添加以下内容rsync

| grep -v "skipping non-regular file"

如果这些是唯一生成这些消息的东西,它将过滤它们。"^skipping"如果它位于行的开头,您甚至可以执行 a 。

相关内容