gzip - 压缩和解压单个文件
gzip 使用 DEFLATE 算法压缩单个数据流。直接压缩文件时,默认用 .gz 文件替换原文件;需要保留原文件时应使用 -k 或 -c。
常用参数
-d、--decompress:解压。-k、--keep:保留输入文件。-c、--stdout:把结果写到标准输出,保留输入文件。-l、--list:显示压缩文件信息。-t、--test:检查压缩数据完整性。-1到-9:从更快到更高压缩率。-r、--recursive:递归处理目录中的每个文件,不会创建目录归档。
使用示例
# 压缩并保留原文件
gzip -k report.txt
# 检查压缩文件
gzip -t report.txt.gz
# 查看压缩信息
gzip -l report.txt.gz
# 解压并保留 .gz 文件
gzip -dk report.txt.gz
# 解压到另一个文件
gzip -dc report.txt.gz > restored-report.txt重定向会覆盖已有目标文件,最后一个示例执行前应确认 restored-report.txt 不存在或允许被替换。
压缩目录
gzip 本身不保存目录结构。需要把目录打包成单个压缩文件时,可结合 tar:
tar -czf project.tar.gz project/安全提示
- 不要把压缩炸弹作为防护手段;它会消耗接收方或自身系统的磁盘、内存和 CPU,属于拒绝服务风险。
- 解压不可信文件前应检查来源、压缩信息和可用磁盘空间,并在受限目录中处理。
-f会强制覆盖或忽略部分安全检查,不应作为默认选项。- 完整性测试只能发现压缩数据损坏,不能证明内容可信或无恶意。