如何使用命令行工具进行DEFLATE提取git对象?

我正在寻找DEFLATE算法的命令行包装。


我有一个使用DEFLATE压缩的文件(git blob),我想将其解压缩。gzip命令似乎没有直接使用DEFLATE算法的选项,而不是gzip格式的选项。


理想情况下,我正在寻找可以做到这一点的标准Unix / Linux工具。


编辑:这是我尝试使用gzip解决我的问题时得到的输出:


$ cat .git/objects/c0/fb67ab3fda7909000da003f4b2ce50a53f43e7 | gunzip


gzip: stdin: not in gzip format


桃花长相依
浏览 568回答 3
3回答

慕码人8056858

您可以使用OpenSSL命令行工具执行此操作:openssl zlib -d < $IN > $OUT不幸的是,至少在Ubuntu上,zlib子命令在默认的构建配置(--no-zlib --no-zlib-dynamic)中被禁用,因此您需要openssl从源代码进行编译才能使用它。但是,例如,默认情况下在Arch上启用了此功能。编辑:似乎该zlib命令也不再受Arch支持。这个答案可能不再有用了:(

慕容708150

您可以使用zlib-flate,如下所示:cat .git/objects/c0/fb67ab3fda7909000da003f4b2ce50a53f43e7 \&nbsp; &nbsp; | zlib-flate -uncompress; echo默认情况下,它在我的计算机上,但是qpdf - tools for and transforming and inspecting PDF files如果需要安装,它是其中的一部分。我echo在命令末尾弹出了一个,因为这样更容易读取输出。
打开App,查看更多内容
随时随地看视频慕课网APP