【问题标题】:How to get diff between two tar.gz如何获得两个 tar.gz 之间的差异
【发布时间】:2016-12-10 18:28:20
【问题描述】:

我有两个存档 1.tar.gz(包含 hello.txt)和 2.tar.gz(包含 hello.txt 和 helloworld.txt)。

我会得到这两个 tar.gz 之间的差异。输出应该是 helloworld.txt。

我尝试过使用 tis 命令:

diff <(tar -tvf 1.tar.gz | sort) <(tar -tvf 2.tar.gz | sort) 

但输出错误。我得到了这个结果:

< drwxr-xr-x user/user         0 2016-12-09 23:29 1/
< -rw-r--r-- user/user       344 2016-12-09 23:29 1/hello.txt.gpg
---
> drwxr-xr-x user/user         0 2016-12-09 23:27 2/
> -rw-r--r-- user/user       344 2016-12-09 23:27 2/hello.txt.gpg
> -rw-r--r-- user/user       363 2016-12-09 23:27 2/helloworld.txt.gpg

【问题讨论】:

    标签: bash debian tar


    【解决方案1】:

    这也有效:

    $ diff <(tar -tvf 1.tar.gz | rev | cut -d\/ -f1 | rev) <(tar -tvf 2.tar.gz | rev | cut -d\/ -f1 | rev)
    1a2
    > helloworld.txt.gpg
    

    进一步解释:

    以下内容:| rev | cur -d\/ -f1 | rev 是一种从完整路径中获取文件名的快速方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 2018-05-19
      • 1970-01-01
      • 2016-07-12
      相关资源
      最近更新 更多