web-dev-qa-db-ja.com

複数のエントリを含むアーカイブを解凍します

〜8GBを解凍しようとしています.Zipファイルはcurlコマンドからパイプされます。私が試したものはすべて1GB未満で中断され、次のメッセージが返されます。

...複数のエントリがあります-残りは無視されます

私が試した:funzipgunzipgzip -dzcat、...これも異なる引数を使用します-すべて上記のメッセージになります。

データファイルは公開されているので、問題を簡単に再現できます。

curl -L https://archive.org/download/nycTaxiTripData2013/faredata2013.Zip | funzip > datafile
3
Oleg Shirokikh

使用しているコマンドは、Zipアーカイブの最初のエントリからのみデータを抽出できます。これは funzip manpage で明示的に言及されています:

funzipファイル引数なしはフィルターとして機能します。つまり、Zipアーカイブ(またはgzip 'd(1)ファイル)が標準入力にパイプされていると想定し、最初のファイルを抽出しますアーカイブから標準出力へのメンバー。

faredata2013.Zipには複数のエントリが含まれているため、unzipを使用してそれらを抽出する必要があります。それらをstdoutに抽出する場合は、unzip-cオプションとともに使用し、-qを追加して、すべてのファイルの生のコンテンツが必要な場合のみアーカイブ内。 (-cはアーカイブの内容をstdoutに抽出します。デフォルトでは、ヘッダーが各ファイルの内容の前に名前を付けます。-qはファイル名を出力せずに抽出します)。 -p-cの両方の代わりに-qオプションを使用することもできます。

6
Stephen Kitt