gzip 命令 #
gzip
命令用于压缩文件,减小文件大小。它使用 Lempel-Ziv 编码(LZ77)算法进行压缩,是 Linux 系统中最常用的压缩工具之一。
语法 #
gzip [选项] [文件...]
常用选项 #
选项 | 描述 |
---|---|
-c, --stdout |
将结果写入标准输出,保留原始文件 |
-d, --decompress |
解压缩文件 |
-f, --force |
强制压缩或解压缩 |
-k, --keep |
保留原始文件 |
-l, --list |
列出压缩文件的信息 |
-n, --no-name |
压缩时不保存原始文件名和时间戳 |
-N, --name |
解压缩时恢复原始文件名和时间戳 |
-q, --quiet |
抑制所有警告 |
-r, --recursive |
递归处理目录 |
-t, --test |
测试压缩文件的完整性 |
-v, --verbose |
显示详细信息 |
-数字 |
设置压缩级别(1-9,1 最快但压缩率最低,9 最慢但压缩率最高,默认为 6) |
常见用法 #
1. 压缩单个文件 #
gzip file.txt
这将创建file.txt.gz
并删除原始文件。
2. 压缩文件并保留原始文件 #
gzip -k file.txt
3. 压缩多个文件 #
gzip file1.txt file2.txt file3.txt
4. 解压缩文件 #
gzip -d file.txt.gz
或使用gunzip
命令:
gunzip file.txt.gz
5. 显示压缩文件信息 #
gzip -l file.txt.gz
输出示例:
compressed uncompressed ratio uncompressed_name
43 73 41.1% file.txt
6. 设置压缩级别 #
# 最快压缩,压缩率最低
gzip -1 file.txt
# 最慢压缩,压缩率最高
gzip -9 file.txt
7. 递归压缩目录中的所有文件 #
gzip -r directory/
8. 将压缩结果输出到标准输出 #
gzip -c file.txt > file.txt.gz
这将保留原始文件。
9. 测试压缩文件的完整性 #
gzip -t file.txt.gz
如果文件完好,不会有输出;如果文件损坏,会显示错误消息。
10. 显示详细信息 #
gzip -v file.txt
输出示例:
file.txt: 73.2% -- replaced with file.txt.gz
11. 强制覆盖已存在的压缩文件 #
gzip -f file.txt
12. 压缩标准输入的数据 #
cat file.txt | gzip > file.txt.gz
与其他命令结合使用 #
1. 压缩并通过网络传输文件 #
gzip -c large_file | ssh user@remote "cat > large_file.gz"
2. 解压缩并查看文件内容 #
gzip -dc file.txt.gz | less
或使用zcat
命令:
zcat file.txt.gz | less
3. 创建 tar 归档并压缩 #
tar -cf - directory/ | gzip > directory.tar.gz
或直接使用 tar 的 z 选项:
tar -czf directory.tar.gz directory/
4. 比较两个压缩文件的内容 #
gzip -dc file1.gz | diff - <(gzip -dc file2.gz)
提示 #
gzip
默认会删除原始文件,使用-k
选项可以保留原始文件gzip
只压缩单个文件,不会将多个文件合并为一个压缩文件(这需要先使用tar
)- 对于已经压缩的文件(如 JPEG、MP3、ZIP 等),
gzip
的效果不明显 - 使用
-1
到-9
选项可以在压缩速度和压缩率之间取得平衡 gzip
压缩的文件可以用gunzip
、gzip -d
或zcat
解压缩- 在脚本中使用
gzip
时,通常使用-c
选项并重定向输出,以便更好地控制文件处理 gzip
不支持密码保护,如果需要加密,可以考虑使用gpg
等工具- 使用
zcat
、zless
、zgrep
等命令可以直接操作压缩文件,无需先解压缩 - 在 Linux 系统中,许多配置文件和日志文件会自动使用
gzip
进行压缩和轮换