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

91
我正在寻找一个DEFLATE算法的命令行包装器。我有一个使用DEFLATE压缩的文件(git blob),我想解压它。gzip命令似乎没有直接使用DEFLATE算法的选项,而不是gzip格式。理想情况下,我正在寻找一个可以做到这一点的标准Unix / Linux工具。编辑:当我尝试使用gzip解决我的问题时,这是我得到的输出:
$ cat .git/objects/c0/fb67ab3fda7909000da003f4b2ce50a53f43e7 | gunzip

gzip: stdin: not in gzip format

针对那些通过搜索引擎找到这个问题并想要使用 cURL 解压数据的人的相关问题:https://dev59.com/bWsy5IYBdhLWcg3wtwW9 - baptx
22个回答

1

Python3 一行代码:

python3 -c "import zlib,sys; sys.stdout.buffer.write(zlib.decompress(sys.stdin.buffer.read()))" < infile > outfile

这种方式将内容处理为二进制数据,避免了Unicode的转换。


0
const zlib = require("zlib");
const adler32 = require("adler32");
const data = "hello world~!";
const chksum = adler32.sum(new Buffer(data)).toString(16);
console.log("789c",zlib.deflateRawSync(data).toString("hex"),chksum);
// or
console.log(zlib.deflateSync(data).toString("hex"));

1
你能解释一下这段代码是做什么的,以及如何运行它吗?这可能有助于人们决定你的答案是否对他们有用。 - mwfearnley
1
这是Javascript,对吗? - JakeRobb

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