我正在尝试解压缩.zip
从curl
命令管道传输的 ~8GB 文件。我尝试过的所有操作都在 <1GB 时被中断并返回一条消息:
...有多个条目 - 其余条目被忽略
我尝试过:funzip
, gunzip
, gzip -d
, zcat
, ... 也有不同的参数 - 全部都在上面的消息中结束。
数据文件是公开的,因此很容易重现该问题:
curl -L https://archive.org/download/nycTaxiTripData2013/faredata2013.zip | funzip > datafile
答案1
您使用的命令只能从 ZIP 存档的第一个条目中提取数据;这在funzip
联机帮助页:
乐趣压缩没有文件参数充当过滤器;也就是说,它假设 ZIP 存档(或压缩包'd(1) file) 正在通过管道传输到标准输入,并将存档中的第一个成员提取到标准输出。
faredata2013.zip
包含多个条目,因此您需要使用unzip
来提取它们。如果您想将它们提取到stdout
,您可以使用unzip
选项-c
,-q
如果您只想要存档中所有文件的原始内容,请添加。 (-c
将存档的内容提取到stdout
,默认情况下,标头在其内容之前给出每个文件的名称;-q
提取时不输出文件名)。您还可以使用该-p
选项来代替-c
和-q
。