2016-12-10 9 views
1

У меня есть два архива 1.tar.gz (содержащий hello.txt) и 2.tar.gz (содержащий hello.txt и helloworld.txt).Как получить diff между двумя tar.gz

Я получаю разницу между этими двумя tar.gz. Выход должен быть helloworld.txt.

Я попытался с помощью команды ТИС:

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 

ответ

2

Это также работает:

$ 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

 Смежные вопросы

  • Нет связанных вопросов^_^