首页·终端命令

zcat

压缩与传输

用法

zcat <file.gz>

把 .gz 里的内容直接送到标准输出,完全不在磁盘上解开,所以能就地 grep 一份已经轮转的日志;`-f` 让没压缩的普通文件也一起通过,而 bzip2、xz、zstd 各有自己的 bzcat、xzcat、zstdcat。

常用选项

选项含义
<file.gz>Print the contents to stdout, leaving the file compressed.
-fAlso pass through files that are not compressed at all.
zgrep / zlessThe same idea for searching and paging a .gz file.
bzcat / xzcat / zstdcatThe equivalents for bzip2, xz and zstd.

示例

zcat access.log.gz | grep " 500 "

Search a rotated log without unpacking it.

zcat -f app.log app.log.1.gz | tail -100

Read across compressed and plain logs in one pass.

打包和压缩是两件事:tar 打包,gzip 压小,.tar.gz 是两样一起。

怎么看

  • 方括号 [ ] 表示这部分可以不写。
  • 省略号 … 表示可以写多个。
  • 选项区分大小写——有些命令里 -r 和 -R 不是一回事。

常见问题

Q. zcat 是做什么的?

把 .gz 里的内容直接送到标准输出,完全不在磁盘上解开,所以能就地 grep 一份已经轮转的日志;`-f` 让没压缩的普通文件也一起通过,而 bzip2、xz、zstd 各有自己的 bzcat、xzcat、zstdcat。

Q. 怎么写?

zcat <file.gz> —— 方括号表示可以省略的部分。

Q. 值得记的选项有几个?

这里列了 4 个,完整列表在 man zcat。这条命令属于压缩与传输。

相关命令

man 手册: man zcat