По словам man unzip
:
NAME
unzip - list, test and extract compressed files in a ZIP ar‐
chive
SYNOPSIS
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip]
[file(s) ...] [-x xfile(s) ...] [-d exdir]
[file(s)]
An optional list of archive members to be processed,
separated by spaces. (VMS versions compiled with
VMSCLI defined must delimit files with commas instead.
See -v in OPTIONS below.) Regular expressions (wild‐
cards) may be used to match multiple members; see
above. Again, be sure to quote expressions that would
otherwise be expanded or modified by the operating sys‐
tem.
Другими словами, аргументы, указанные после имени архива, считаются списком файлов, которые вы хотите извлечь:
$ unzip A.zip B.zip C.zip
Если вы хотите сравнить содержимое двух zip-файлов, вы можете просто перечислить файлы в каждом архиве и сравнить списки. Параметры -lqq
приведут к тому, что unzip
выведет список файлов в архиве:
$ unzip -lqq A.zip
424 2013-03-24 04:39 B.zip
424 2013-03-24 04:39 C.zip
424 2013-03-24 04:39 d.txt
Итак, чтобы сравнить два архива, перечислите файлы в каждом, сохраните в текстовый файл и сравните текстовые файлы:
$ unzip -lqq A.zip | sort > A_files.txt
$ unzip -lqq D.zip | sort > D_files.txt
$ diff A_files.txt D_files.txt | grep '<\|>'
< 0 2013-03-24 04:57 only_in_A.txt
> 0 2013-03-24 04:57 only_in_D.txt