代码之家  ›  专栏  ›  技术社区  ›  nedned

仅具有已更新的rsync报告文件

  •  6
  • nedned  · 技术社区  · 16 年前

    当rsync打印出它对每个文件执行的操作的详细信息(使用一个详细标志)时,它似乎同时包括已更新的文件和未更新的文件。例如,使用 -v 国旗是这样的:

    rforms.php is uptodate
    robots.txt is uptodate
    sorry.html
    thankyou.html is uptodate
    

    我只对更新过的文件感兴趣。在上述情况下,这是 sorry.html 。即使该目录中没有更新的文件,它也会在输入时打印出目录名。有没有办法从这个输出中过滤出没有更新文件的最新文件和目录?

    3 回复  |  直到 16 年前
        1
  •  5
  •   Jeff    10 年前

    你可以通过grep来实现:

    rsync -vv (your other rsync options here) | grep -v 'uptodate'
    
        2
  •  4
  •   Richard Michael    12 年前

    Rsync的输出可以广泛定制,请看 rsync --info=help ; -v 是从现代rsync获取信息的一种相当粗糙的方式。

    在你的情况下,我不确定你认为“更新”到底是什么意思。例如,在接收器上也删除了?只有文件/目录,还有管道和符号链接?Mod/访问时间还是仅内容?

    作为一个简单的测试,我建议你看看: rsync --info=name1 <other opts> .

        3
  •  2
  •   Frank N dqthe    9 年前

    这是我的看法。。。(工作证明了这一点,并且非常满意。)

    rsync -arzihv --stats --progress   \
        /media/frank/foo/              \
        /mnt/backup_drive/    | grep -E '^[^.]|^$'
    

    重要的一点是 -i 逐项列出。

    格雷普让 全部的 输出行通过(也可以是中的任何摘要 -h --stats ,之前也是空的,这有利于易读性) 除了 那些以点开头的:这些就是 describe unchanged files :

    A . means that the item is not being updated  (though  it
        might have attributes that are being modified).
    
    推荐文章