sun tar.gz/zipのみ抽出

sun tar.gz/zipのみ抽出

他のzipファイルを含むzipファイルを含むzip/tar.gzがあります。

たとえば、

1.zip contains 2.tar.gz and 3.zip.
3.zip contains 4.zip.

1.zipから4.zipだけを抽出したいです。すべてのファイルを抽出したくありません。

どうすればいいですか?

答え1

unzipこれは標準入力から抽出できないため、パイプで接続できないため、ビューよりも困難です。ただし、jarZIPアーカイブは標準入力から抽出できますfunzip(いくつかの制限があります)。

もし3.zip ただ最初のメンバーとして含めるか含めて、4.zip次のように使用できます。4.zipfunzip

unzip -p 1.zip 3.zip | funzip > 4.zip

これは、コンテンツをunzip抽出し、stdoutにパイプし、stdoutからコンテンツを抽出して作成するために使用されます。3.zip1.zipfunzip4.zip4.zip

jarこれは他に関係なく機能します3.zip

unzip -p 1.zip 3.zip | jar x 4.zip

これにより3.zip内容が入力され抽出jarされます4.zip

funzip一緒に出荷されますunzipjarJava開発キットの一部です。例えば openjdk-11-jdk-headlessDebian 10 で。

関連情報