Linux命令:gzip

gzip 是 Linux 系统中用于压缩单个文件 的经典命令,采用 DEFLATE 压缩算法,压缩后的文件默认后缀为 .gz。它的特点是轻量、高效,常用于日志文件、文本文件的压缩归档。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

一、核心特点

  1. 仅压缩单个文件 :若要压缩多个文件或目录,需先配合 tar 打包成一个文件,再用 gzip 压缩(最终生成 .tar.gz 格式)。
  2. 默认删除原文件:压缩后会自动删除未压缩的源文件,可通过参数保留源文件。
  3. 解压用 gunzipgzip -d:两者效果完全一致。

二、基本用法

1. 命令格式
bash 复制代码
gzip [选项] [文件列表]
2. 常用选项与示例
选项 作用 示例
无选项 压缩指定文件,删除原文件,生成 文件名.gz gzip access.log → 生成 access.log.gz
-c / --stdout 输出压缩结果到标准输出,不删除原文件 gzip -c access.log > access.log.gz
-k / --keep 压缩后保留原文件(推荐日常使用) gzip -k access.log → 同时保留 access.logaccess.log.gz
-d / --decompress 解压 .gz 文件,等价于 gunzip gzip -d access.log.gz → 解压为 access.log
-l / --list 查看压缩文件的详细信息(原大小、压缩比等) gzip -l access.log.gz
-r / --recursive 递归压缩目录下的所有单个文件(不会打包目录) gzip -rk /var/log → 压缩 /var/log 下所有文件并保留源文件
-1 ~ -9 压缩级别,-1 最快(压缩比最低),-9 最慢(压缩比最高),默认 -6 gzip -9k largefile.txt → 最高压缩比压缩

三、常见场景

  1. 压缩单个日志文件(保留源文件)

    bash 复制代码
    gzip -k /var/log/nginx/error.log

    执行后会生成 error.log.gz,同时保留原 error.log

  2. 解压 .gz 文件

    两种等价写法:

    bash 复制代码
    gzip -d error.log.gz
    # 或
    gunzip error.log.gz
  3. 压缩并打包目录(配合 tar
    gzip 无法直接压缩目录,需先用 tar 打包,再压缩(简写为 tar -zcvf):

    bash 复制代码
    # 打包并压缩 /home/data 目录,生成 data.tar.gz
    tar -zcvf data.tar.gz /home/data
    # 解压该文件
    tar -zxvf data.tar.gz
  4. 查看压缩文件内容(无需解压)

    配合 zcat 命令直接读取 .gz 文件内容:

    bash 复制代码
    zcat access.log.gz | grep "404"

四、注意事项

  1. gzip 不处理目录 :直接对目录执行 gzip -r 只会压缩目录内的所有文件,不会生成单个压缩包,这一点和 zip 不同。

  2. 压缩二进制文件效果有限gzip 对文本文件压缩比很高(通常 30%~70%),但对已压缩的文件(如 .jpg.zip.mp4)几乎无效,甚至可能增大文件体积。

  3. bzip2xz 的区别

    命令 压缩算法 压缩比 速度 后缀
    gzip DEFLATE 中等 .gz
    bzip2 Burrows-Wheeler 较高 中等 .bz2
    xz LZMA2 最高 .xz

五、扩展命令

  • gunzip:等价于 gzip -d,专门用于解压 .gz 文件。
  • zless / zmore:分页查看 .gz 压缩文件内容,类似 less / more
相关推荐
老王熬夜敲代码2 小时前
IP和MAC的深入理解
linux·网络·笔记·网络协议
开开心心就好2 小时前
版本转换工具,支持Win双系统零售批量版
linux·运维·服务器·pdf·散列表·零售·1024程序员节
秋深枫叶红2 小时前
嵌入式第三十八篇——linux系统编程——IPC进程间通信
linux·服务器·网络·学习
MediaTea2 小时前
思考与练习(第十章 文件与数据格式化)
java·linux·服务器·前端·javascript
Dovis(誓平步青云)2 小时前
《Linux生态下HTTP协议解析+进阶HTTPS证书:抓包、拆解与问题排查实战》
linux·运维·http
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之diff命令(实操篇)
linux·运维·chrome·笔记
Zeku2 小时前
20251127 - 韦东山Linux - 通用Makefile解析
linux·驱动开发·嵌入式软件·linux应用开发
可爱又迷人的反派角色“yang”2 小时前
docker基本概念(一)
linux·运维·docker·容器
西瓜和拾月3 小时前
Ubuntu Server 24.04 LVM 分区扩容
linux·运维·ubuntu