将curl输出通过管道传输到unzip

问题描述 投票:0回答:1

我正在 GitLab 中构建 CI/CD 脚本,并希望通过将curl 输出通过管道传输到 unzip 来解压缩当前目录中的curl 输出。

我能找到的所有答案都建议使用 wget、tar 或其他工具。

这是我所拥有的:

curl -L "$URL" | unzip - -d ./output

结果是“找不到output.zip,所以显然解压缩在管道时不理解破折号占位符。

curl gitlab pipe unzip
1个回答
0
投票

unzip 似乎不支持从流管道中解压缩。

如果您有权访问 ditto 或 bsdtar,则可以使用它们。

curl -sSL "https://..." | ditto -x -k - $outdir
curl -sSL "https://..." | bsdtar -xvf- -C $outdir

如果您需要使用解压缩,只需将 zip 下载到临时文件中并从那里解压即可。

curl -sSL "https://..." -o archive.zip
unzip archive.zip -d $outdir
rm archive.zip
© www.soinside.com 2019 - 2024. All rights reserved.