【问题标题】:get a list of files that are different between two filetrees获取两个文件树之间不同的文件列表
【发布时间】:2012-10-02 08:25:14
【问题描述】:

我正在比较两个非常大的文件系统(与迁移有关)并且 diff -qr 很棒,但是现在由于用户一直在使用新位置,因此文件已更改。我有一种方法可以使用 diff、grep 或其他任何方法来仅在文件存在时进行比较,即:忽略文件不同的事实。最新的差异有很多: 仅在 /dir1/myFile 仅在 /dir2/myFile 在里面。是否有一种简单的方法可以使用 grep 仅显示 dir2 中根本不存在但 dir1 中存在的文件,或者使用 diff 执行类似的操作。

【问题讨论】:

    标签: file grep diff filetree


    【解决方案1】:

    你可以使用:

    tree /path/to/dir1 > out1
    tree /path/to/dir2 > out2
    diff out1 out2 | grep ">"
    

    但我发现beyond compare 更适合这样的工作。

    【讨论】:

    • 抱歉,我没有提到我正在使用 Mac,但这看起来不错。我不确定“>”,但你给了我足够的欢呼。
    【解决方案2】:

    你也可以使用comm命令

    comm -1 -2

    查看以下链接了解更多信息:

    http://nixtricks.wordpress.com/2010/01/11/unix-compare-the-contents-of-two-directories-in-the-command-line/

    【讨论】:

      【解决方案3】:

      上面的一个衬里很棒,但是这个 bash 脚本允许您进行更多自定义:可以将 -e 更改为 ! -e 或跳过某些文件。

      for f in $(find old/ -type f) ; do if [ -e "new/${f}" ] ; then echo "${f} exists" ; fi ; done

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 2017-02-14
        • 1970-01-01
        • 2013-05-16
        • 1970-01-01
        • 2013-11-26
        • 2019-03-26
        • 1970-01-01
        • 2011-10-03
        相关资源
        最近更新 更多