200字
gzip
2025-10-10
2025-10-10

"GNU zip" 的缩写,是一个用于压缩或解压缩文件的命令行工具,采用 DEFLATE 压缩算法,能有效减小文件体积,常用于备份、传输文件或节省存储空间。

该命令会将原始文件压缩为 .gz 后缀的压缩文件,并默认删除原始文件(可通过选项保留),支持批量压缩多个文件,但不支持压缩目录(需配合 tar 使用)。

 gzip [选项] <文件1> <文件2> ...

常用选项

  • -d:"decompress",解压缩 .gz 格式的压缩文件,例如 gzip -d data.txt.gzdata.txt.gz 解压缩为 data.txt 并删除压缩文件。

  • -k:"keep",压缩或解压缩后保留原始文件,例如 gzip -k report.pdf 压缩后同时保留 report.pdfreport.pdf.gz,默认情况下原始文件会被删除。

  • -c:"stdout",将压缩/解压缩结果输出到标准输出(不修改原始文件),例如 gzip -c logs.txt > logs.txt.gz 压缩内容并通过重定向保存为压缩文件,原始文件不变。

  • -v:"verbose",显示压缩/解压缩的详细信息(包括压缩率),例如 gzip -v archive.tar 会输出 archive.tar: 65.4% -- replaced with archive.tar.gz,便于查看压缩效果。

  • -1-9:指定压缩级别(1 最快但压缩率最低,9 最慢但压缩率最高,默认级别为 6),例如 gzip -9 largefile.dat 以最高压缩率压缩文件,适合对存储空间要求高的场景。

  • -t:"test",测试压缩文件的完整性,例如 gzip -t backup.gz 检查 backup.gz 是否损坏,无输出表示文件正常,错误则提示损坏。

  • -r:"recursive",递归压缩目录下的所有文件(仅压缩文件,不压缩目录本身),例如 gzip -r docs/ 会压缩 docs/ 及其子目录下的所有文件,每个文件生成对应的 .gz 压缩文件。

参考示例

  • 示例1:基本压缩单个文件 执行 gzip data.csv,将 data.csv 压缩为 data.csv.gz,并删除原始文件 data.csv,适合临时压缩不常用的文件。

  • 示例2:解压缩文件并保留压缩包 执行 gzip -d -k backup.tar.gz,将 backup.tar.gz 解压缩为 backup.tar,同时保留原始压缩包 backup.tar.gz,便于后续再次使用压缩包。

  • 示例3:批量压缩多个文件并显示详情 执行 gzip -v *.log,压缩当前目录下所有 .log 文件,每个文件生成对应的 .gz 压缩文件,并显示每个文件的压缩率,例如 access.log: 78.2% -- replaced with access.log.gz

  • 示例4:压缩文件并保留原始文件 执行 gzip -k -6 report.txt,以默认级别6压缩 report.txt,生成 report.txt.gz 并保留原始文件,兼顾压缩效率和原始文件可用性。

  • 示例5:通过管道压缩并保存输出 执行 cat largefile.txt | gzip -c > largefile.txt.gz,先读取 largefile.txt 内容,通过管道传递给 gzip 压缩,再将结果重定向保存为 largefile.txt.gz,原始文件不变,适合处理正在被使用的文件(避免占用文件锁)。

  • 示例6:测试压缩文件完整性 执行 gzip -t important.gz,检查 important.gz 是否损坏,若文件正常则无输出,若损坏则提示 gzip: important.gz: invalid compressed data--format violated,适合验证下载或传输后的压缩文件。

  • 示例7:递归压缩目录下的所有文件 执行 gzip -r -v /var/log/,递归压缩 /var/log/ 目录及其子目录下的所有文件,每个文件生成 .gz 压缩文件,并显示压缩详情,适合日志文件的批量归档。

  • 示例8:解压多个压缩文件 执行 gzip -d *.gz,解压缩当前目录下所有 .gz 格式的文件,每个压缩文件对应生成原始文件,并删除压缩包,适合批量恢复压缩的文件。

注意gzip 只能压缩单个文件,无法直接压缩目录。若需压缩目录,需先使用 tar 打包目录为单个文件,再用 gzip 压缩(例如 tar -cf archive.tar docs/ && gzip archive.tar,或直接使用 tar -zcf archive.tar.gz docs/ 一步完成)。


评论