我正在寻找DEFLATE算法的命令行包装器。
我有一个使用DEFLATE压缩的文件(git blob),我想解压缩它。gzip命令似乎没有直接使用DEFLATE算法的选项,而不是gzip格式。
理想情况下,我正在寻找一个可以做到这一点的标准Unix / Linux工具。
编辑:这是我尝试使用gzip解决我的问题时得到的输出:
$ cat .git/objects/c0/fb67ab3fda7909000da003f4b2ce50a53f43e7 | gunzip
gzip: stdin: not in gzip format
发布于 2018-05-07 10:09:39
这些可以通过pigz
预先打包在几个Linux发行版中的工具解压缩:
$ cat foo.txt
file foo.txt!
$ git ls-files -s foo.txt
100644 7a79fc625cac65001fb127f468847ab93b5f8b19 0 foo.txt
$ pigz -d < .git/objects/7a/79fc625cac65001fb127f468847ab93b5f8b19
blob 14file foo.txt!
这是一个小例子:
#include <assert.h>
#include <string.h>
#include "puff.h"
int main( int argc, char **argv ) {
unsigned char dest[ 5 ];
unsigned long destlen = 4;
const unsigned char *source = "\x4B\x2C\x4E\x49\x03\x00";
unsigned long sourcelen = 6;
assert( puff( dest, &destlen, source, &sourcelen ) == 0 );
dest[ 4 ] = '\0';
assert( strcmp( dest, "asdf" ) == 0 );
}
发布于 2018-05-07 11:21:16
类似下面的内容将打印原始内容,包括“$ type $ length \ 0”标题:
perl -MCompress::Zlib -e 'undef $/; print uncompress(<>)' \
< .git/objects/27/de0a1dd5a89a94990618632967a1c86a82d577
https://stackoverflow.com/questions/-100004033
复制相似问题