gzip 是否破坏了我的日志文件?

gzip 是否破坏了我的日志文件?

我有一个相当大的日志文件。所以我想在将它传输到我的电脑之前先对其进行 gzip 压缩。我这样做了

gzip bla.log

这给了我一个小小的

bla.log.gz

当我使用提取它时

gunzip bla.log.gz

我回到我的 bla.log,但是它很小,当我用 vi 打开它时,它看起来像这样:

 ^@^@^@^@^@^@^@^@^@^@^@

为什么会发生这种情况? 有没有办法从这个 .gz 存档中获取我的日志文件?

顺便说一句,我使用的是 Linux x86_64 x86_64 x86_64 GNU/Linux

答案1

这很奇怪。

它到底有多小?原始日志文件有多大?它file bla.log.gz说了什么?

通常gzip bla.log会写入bla.log.gz,然后如果成功则删除bla.loggunzip blo.log.gz会写入bla.log然后删除bla.log.gz

如果在执行命令期间出现问题gzip(例如,空间不足、超出配额、被信号杀死或计算机断电),那么您很容易得到部分或损坏的文件bla.log.gz- 但原始bla.log文件应该仍然在那里。

如果你跑了gunzip bla.log.gz,你应该得到如下提示:

gzip: bla.log already exists; do you wish to overwrite (y or n)? 

不应该bla.log除非 (a) 您告诉它这样做(通过使用gunzip -f或回答y上述提示),或 (b) 它成功生成,否则它将破坏您的原始文件bla.log.gz

回答你的问题,如果bla.log.gz它只包含几个零字节,那么你将不会从中获得任何有用的东西。

答案2

通常情况下不应该发生这种情况。尝试使用 gzless 之类的工具读取 gz 文件。如果这也有问题。压缩时出了问题。

相关内容