当前位置:首页>Linux>Linux命令每日一清单022:gzip--文件压缩命令速查表

Linux命令每日一清单022:gzip--文件压缩命令速查表

  • 2026-09-10 02:37:58
Linux命令每日一清单022:gzip--文件压缩命令速查表

gzip(GNU zip)是Linux/Unix系统中最常用的文件压缩工具之一,采用DEFLATE压缩算法,将单个文件压缩为.gz格式。与tar配合使用时,gzip是创建.tar.gz或.tgz归档包的压缩层。gzip以较高的压缩速度和合理的压缩率著称,尤其适合文本文件、日志文件等场景。

gzip通常与gunzip(解压)和zcat(查看压缩内容)配套使用。与zip不同,gzip设计为压缩单个文件而非目录,因此压缩目录时需要结合tar使用。掌握gzip对于日志管理、备份操作、文件传输等场景至关重要。

1. 基本语法

命令说明
gzip file.txt
压缩文件,替换为file.txt.gz
gzip -k file.txt
压缩并保留原文件
gzip -d file.gz
解压.gz文件
gunzip file.gz
解压.gz文件(同gzip -d)
zcat file.gz
输出解压内容到标准输出

2. 压缩级别

gzip支持1-9级压缩,默认为6级。

命令说明
gzip -1 file.txt
最快压缩速度,体积较大
gzip -6 file.txt
默认压缩级别
gzip -9 file.txt
最大压缩率,速度最慢
gzip -k -9 file.txt
最大压缩并保留原文件
gzip -v -9 file.txt
显示压缩详细信息

3. 多文件压缩

命令说明
gzip *.log
压缩所有匹配的log文件
gzip -r logs/
递归压缩目录中的所有文件
find . -name '*.txt' -print0 | xargs -0 gzip
查找并压缩txt文件
for f in *.csv; do gzip -k "$f"; done
压缩并保留原文件
gzip -- *.txt
安全压缩以-开头的文件
gzip -r --exclude='*.gz' logs/
递归压缩但排除已压缩文件

4. 解压与查看

命令说明
gunzip archive.gz
解压并删除.gz文件
gzip -dk archive.gz
解压并保留.gz文件
gzip -l archive.gz
显示压缩前后大小
gzip -v file.txt
显示压缩率和详细信息
gzip -t archive.gz
测试完整性(不解压)
zcat archive.gz | less
查看压缩文件内容
zcat archive.gz | head -20
查看压缩文件前20行

5. 流式处理与管道

gzip可以无缝集成到管道中,无需中间文件。

命令说明
mysqldump mydb | gzip > mydb.sql.gz
压缩命令输出
gzip -c file.txt > file.txt.gz
压缩输出到指定文件
gunzip -c backup.sql.gz > backup.sql
解压到指定文件
tar -cf - project/ | gzip > project.tar.gz
创建压缩tar包
gzip -dc access.log.gz | grep "ERROR"
搜索压缩日志内容
cat file.txt | gzip -9 > file.txt.gz
管道输入压缩

6. 与其他工具配合

命令说明
zcat file.gz | wc -l
统计压缩文件行数
zgrep "pattern" file.gz
在压缩文件中搜索(无需解压)
zdiff file1.gz file2.gz
比较两个压缩文件
zless file.gz
分页查看压缩文件
znew old.Z
将.Z格式转换为.gz
gzip -c file.txt | ssh user@host "cat > file.txt.gz"
压缩并远程传输

7. 实用组合模式

命令说明
gzip -9 -k access.log && mv access.log.gz logs/archive/
最大压缩日志并归档
find /var/log -name "*.log" -mtime +30 -exec gzip {} \;
压缩30天前的日志
zcat archive.gz | wc -l > line_count.txt
统计行数并保存
tar -czf backup.tar.gz --exclude="*.gz" /home/user
创建tar.gz备份,排除已压缩文件
gzip -dc *.gz | grep "ERROR" | sort | uniq -c
分析多个压缩日志中的错误
dd if=/dev/sda | gzip -c > sda.img.gz
压缩磁盘镜像

8. 常用选项速查

选项完整名称说明
-1 到 -9
-
压缩级别(1=最快,9=最小)
-k
--keep
保留原文件(压缩后不删除)
-d
--decompress
解压
-c
--stdout
输出到标准输出
-v
--verbose
显示详细信息
-l
--list
列出压缩文件信息
-t
--test
测试文件完整性
-r
--recursive
递归处理目录
-f
--force
强制覆盖输出文件
-q
--quiet
安静模式,抑制警告

9. 文件扩展名与关联命令

扩展名创建命令查看/解压命令
.gzgzip filegunzip file.gz
、zcat file.gz
.tar.gz
 / .tgz
tar -czf archive.tar.gz dir/tar -xzf archive.tar.gz
.Zcompress fileuncompress file.Z
、znew file.Z
.bz2bzip2 filebunzip2 file.bz2
.xzxz fileunxz file.xz

10. 压缩工具对比

工具压缩率速度
gzip
中等
快
bzip2
较高
中等
xz
最高
慢
zip
类似gzip
快(支持目录)

11. 故障排查

问题解决方法
gzip: command not found
安装gzip包:apt install gzip 或 yum install gzip
原文件压缩后消失
使用-k选项保留原文件
not in gzip format
先确认文件类型:file filename;文件可能已损坏或是其他格式
corrupt archive errors
测试完整性:gzip -t file.gz;从备份恢复
解压时意外覆盖文件
使用-k或-c重定向输出控制覆盖行为
压缩后体积反而增大
文件可能已压缩(如jpeg、mp4),或使用-1快速压缩
递归压缩目录混乱
使用find配合-print0和xargs -0处理特殊文件名

温馨提示: gzip默认会删除原文件,如需要保留请使用-k选项。压缩文本文件(日志、SQL、代码)效果最好,多媒体文件已压缩,再用gzip效果不明显。在脚本中使用gzip时,建议先测试文件是否存在、是否已压缩,避免重复压缩。对于需要长期归档的数据,推荐使用xz获得更高压缩率;对于需要快速压缩的场景,gzip的-1级别非常高效。日志轮转时,gzip是压缩旧日志的标准选择。

本文PDF格式下载:

  关注公众号(haopython),请回复: LLTGZIP

最新文章

随机文章