如何得到两个tar之间的差异tar.gz

问题描述:

我有两个压缩文件1.tar.gz(包含hello.txt)和2.tar.gz(包含hello.txt和helloworld.txt)。如何得到两个tar之间的差异tar.gz

我会得到这两个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 

这也适用于:

$ 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是获得不仅是文件名了完整路径的快捷方式。

+0

它的作品!非常感谢! – Mattasse