rsync - 只报告上传的文件

blu*_*ast 16 rsync

我对 rsync 有问题:要么它向我显示我正在 rsync 的目录中的所有文件(如果使用标志-v),要么什么都不显示(不使用时-v)。

我想让 rsync 安静,除了实际上必须上传到远端的文件。是否有一个标志可以激活这种报告?我在文档中找不到这个

Oli*_*ver 13

是的,看看-i国旗。它以神秘的格式提供每个操作的报告。有关格式的确切定义,请参阅手册页。

为了获取发送到远程主机的文件列表,您可以使用以下命令:

rsync <options> -i <src> <dst> | grep '^<' | awk '{ print $2 }'
Run Code Online (Sandbox Code Playgroud)

  • 使用`grep -E '^[^.]|^$'` 也会让统计信息(或警告、错误等)通过,只删除以点开头的真正无聊的行...... (2认同)

Amr*_*afa 10

带有单个的 rsync-v实际上仅打印传输的文件。如果您每次都获得完整列表,则可能意味着基于修改时间 + 大小的默认 rsync src/dest 比较算法不适合您的情况。您可以添加-c( --checksum) 标志,通过校验和使 rsync 比较文件。请注意,这显然会导致一些 I/O 开销。

稍微相关的是,如果您使用--info=flist而不是,-v那么您将获得更修剪的文件输出(您基本上跳过典型-v输出的页眉和页脚)。