在命令行中解压zlib文件

kil*_*joy 2 unix compression git zlib

当 Git 存储文件的快照时,它会存储一个称为 blob 的对象。

这是使用 zlib 压缩的。请参阅http://nfarina.com/post/9868516270/git-is-simler;要么我是瞎子,要么他没有解释文件 blob 是如何在第一处解压缩的(而其他所有内容都像向菜鸟一样解释)

我们如何提取它并查看 blob 的内容?谷歌搜索的大部分结果适用于脚本/程序中的解压缩,而不是手动/CL:

Deflate 命令行工具 https://unix.stackexchange.com/q/22834

我一直在寻找一种单行命令行方法来在单个文件上执行此操作。

提前致谢!

(即使这个问题听起来像是重复的,但另一个链接中的一系列答案并不像这里的答案那么准确。我认为这个线程应该保持活跃,或者将这个答案发布在那里,以帮助其他人解决不复杂的问题泄气的方法)

Cod*_*ard 5

用于git cat-file -p SHA1查看 blob 的文件内容。

该文件的内容是这样的:blob XXX NULL Content

前任:

a.txt 包含 Hello World

SHA-1 的内容是:

blob 11\000Hello World然后这个字符串被 GZipped

如果你使用的是 unix,你可以使用它来缩小内容:
perl -MCompress::Zlib -e 'undef $/; print uncompress(<>)'