我正在寻找允许动态压缩和解压缩的库或 Linux 命令行工具。我所说的“即时”是指可以与以下 sh 脚本一起使用的东西:
> while:; do; echo "foobar"; sleep 1; done; | <tool to compress> > file &
> sleep 4
> <tool to decompress> file
foobar
foobar
foobar
foobar
据我了解gzip
,zlib 在这里不起作用。我的“测试”产生以下输出:
> while:; do; echo "foobar"; sleep 1; done; | gzip > file &
> sleep 4
> zcat file
gzip: file: unexpected end of file
有什么选择吗?
答案1
gzip
确实有效,但它只写入 16KiB 压缩块(在我的测试中),并且由于您的输入压缩真的嗯,需要一段时间才能到达那里。如果你跑
while :; do echo "foobar"; sleep 1; done | gzip > file &
稍等一下,然后仅删除第一部分,您将获得有效的压缩file
.
如果你想在不杀死任何东西的情况下进行测试,请删除sleep
:
yes foobar | gzip > file &
几秒钟后,您将看到file
增加到 16KiB。