zstd:错误70:写入错误:管道损坏(无法写入解码块)

7

我试图通过Windows终端使用zstd v1.4.0解压大量压缩文件,然后进行'ag'搜索:

zstd -dc -r . | ag -z -i "term"

但在处理期间,它给出了以下错误:

zstd: error 70 : Write error : Broken pipe (cannot write decoded block)

我花了好几个小时寻找解决方案,尝试了不同的zstd命令选项,但无法解决这个问题。


1
这可能表示ag正在退出,你可以通常检查一下 ag -z "term" <file> 是否适用于你? - Tarun Lalwani
它给我报错:ERR: 无法解压缩的压缩文件ERR: 尚不支持Zip文件 - titibouboul
2
是的,zip和gzip是不同的,我相信ag支持gzip而不是zip。 - Tarun Lalwani
@titibouboul 你应该尝试缩小问题范围,它是否适用于一个压缩文件?也许使用 PowerShell 不同(过去的 cmd 管道是:写入一个临时文件并读取它)? - mpromonet
1个回答

3
如果您想在未压缩的文件中搜索,应该使用以下命令:
zstd -dc -r . | ag -i "term"

zstd 可以解压支持的文件,ag 可以在其中搜索(您的命令尝试进行两次解压,一次使用 zstd,一次使用 ag)。

您可以使用 zstd -vV 获取支持的格式,它应该会给出类似以下的内容:

*** zstd command line interface 64-bits v1.4.0, by Yann Collet ***
*** supports: zstd, zstd legacy v0.5+, gzip
注意:我尝试过的zstd版本不支持zip格式。
您可以通过使用ag -V获取ag支持的压缩格式,应该会得到类似以下信息:
ag version 2.1.0

Features:
  +jit +lzma +zlib
注意:我尝试的ag版本不支持zip。

1
谢谢您提供这么详细的答案,非常有趣。我尝试了第一个解决方案,即从公式中删除“-z”,但是我仍然遇到了同样的错误。 - titibouboul
1
@titibouboul:这很奇怪,因为在decompress.c中,当使用-z时,方法decompress被调用并打印消息“Zip files not yet supported”,而此方法仅被调用一次search.c - mpromonet
我正在参考我试图解决的原始错误: zstd: error 70 : Write error : Broken pipe (cannot write decoded block) - titibouboul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接