以下のようにネストされたzipファイルを一覧表示しようとしています。 2 番目のレベルのファイルはリストされません。
たとえば、
abc.zip
含むtest1.zip
, test2.zip
,test3.zip
pqr.zip
含むtest4.zip
, test5.zip
,test6.zip
for f in *.zip
do
unzip -l ${f}
for p in ${f}
do
unzip -l ${p}
done
done
ベストアンサー1
bsdtar
libarchive と GNU を組み合わせると、tar
これらのネストされたアーカイブの内容をディスクに抽出せずに一覧表示できます。
for f in *.zip; do
bsdtar -cf - --include='*.zip' "@$f" | tar -xf - --to-command='bsdtar tvf -'
done
GNUはtar
抽出時にアーカイブメンバーをコマンドにパイプできますが、アーカイブ形式--to-command
のみをサポートします。tar
bsdtar
さまざまなアーカイブ形式がサポートされていますtar
(含まれていますzip
)。 GNUと同等のものはありませんがtar
(--to-command
私が知っている限り)、アーカイブ形式はすぐに変換できます。