gpt4 book ai didi

linux - 完成从 tarball 中提取给定文件后,管道 un-tar kill pipe

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:42 25 4
gpt4 key购买 nike

我正在使用 curl 下载一个大压缩包。我只对那个 tarball 中的一个文件感兴趣。所以目前我正在将 curl 的输出通过管道传输到 tar。

$ curl -S http://url/of/big/tarball.tar.gz | tar -xv path/of/one/file

尽管这样效果很好。即使所需的文件已经解压,它仍然会完全下载巨大的 tarball。有没有办法在 tar 完成提取所需文件时自动中断它?

编辑:对于在网上游荡的任何人来说都是同样的问题。我最终创建了一个小的 bash 脚本

trap 'kill $(jobs -p)' EXIT
curl -S "${URL}" | tar -C "${OUTPUT_DIR}" -xv "${FILES[@]}" 2>&1 | head -"${FILES_CNT}" > "${CTRL_FILE}" 2>&1 &
# Wait for the required files to be found in the tar
until [[ -s "${CTRL_FILE}" && $(wc -l "${CTRL_FILE}" | cut -d' ' -f 8) -ge "${FILES_CNT}" ]]; do
sleep 10s
done

最佳答案

trap 'kill $(jobs -p)' EXIT
curl -S "${URL}" | tar -C "${OUTPUT_DIR}" -xv "${FILES[@]}" 2>&1 | head -"${FILES_CNT}" > "${CTRL_FILE}" 2>&1 &
# Wait for the required files to be found in the tar
until [[ -s "${CTRL_FILE}" && $(wc -l "${CTRL_FILE}" | cut -d' ' -f 8) -ge "${FILES_CNT}" ]]; do
sleep 10s
done

关于linux - 完成从 tarball 中提取给定文件后,管道 un-tar kill pipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48673056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com