【发布时间】:2021-06-09 06:15:05
【问题描述】:
我有一个文本文件,原来大小>300GB,压缩后它仍然有>10GB。 (这是一个数据库导出,运行了几天,然后被中止,我想知道最后一个导出条目的时间戳,以便恢复导出。)
我对这个文本文件的最后几行感兴趣,最好不必解压缩整个 300GB(甚至到内存中)。这个文件不再增长,所以我不需要跟踪更改或附加数据,也就是 tail -f。
有没有办法只压缩文件的最后一部分?
tail --bytes=10000000 /mnt/myfile.db.gz | gunzip - |less
不起作用(它返回stdin: not in gzip format)。由于 gzip 不仅可以压缩文件,还可以压缩数据流,因此应该可以在文件中的某处搜索开始解压缩的入口点,而无需读取文件头。对吧?
【问题讨论】:
-
这个怎么样? *.com/questions/22533060/…
-
unix.stackexchange.com/questions/429197/…
Since gzip can compress not just files, but also streams of data, it should be possible to search不管是文件还是流,前面都得有gzip头。流也有一个带有幻数的 gzip 标头。