为什么在 zlib 压缩文件上使用“cat”时会看到奇怪的字符?

为什么在 zlib 压缩文件上使用“cat”时会看到奇怪的字符?

当我尝试cat在 zlib 压缩文件上运行命令时,我得到了这一串奇怪的字符xK??OR04d?H????/?I;{<%

他们来自哪里?

答案1

当在非常基本的层面上使用时 - 例如cat filename- 该cat命令只是获取文件的内容并将其写入标准输出,直到到达文件末尾。

压缩文档实际上是二进制文件。压缩文本文件可以使其大小减小,但压缩后它们不再是文本文件;它们现在是二进制文件。

因此,当您对二进制文件运行基本cat命令时,它将直接显示该文件的原始内容,这就是xK??OR04d?H????/?I;{<%现在压缩的文本文件的压缩二进制内容。

也就是说,对于二进制文件,可以通过管道将输出传输cat到另一个需要/使用二进制输入的程序。

例如,如果我有一个名为的文本文件textfile.txt,并且我用 Gzip 压缩它,所以文件名现在是,我可以对文件内容textfile.txt.gz运行此命令,以便我可以在终端中将其读入为解压缩的文本文件。catgzip

cat textfile.txt.gz | gzip -d -

相关内容