Linux 系统中有多种压缩和解压缩文件的命令,以下是一些常用的压缩命令及其用法:
功能:打包和压缩文件/目录(常与 gzip
/bzip2
/xz
结合使用)。
常用选项:
- -c
:创建归档文件
- -x
:解压归档文件
- -z
:使用 gzip
压缩/解压(.tar.gz
或 .tgz
)
- -j
:使用 bzip2
压缩/解压(.tar.bz2
)
- -J
:使用 xz
压缩/解压(.tar.xz
)
- -v
:显示详细过程
- -f
:指定文件名
示例:
# 压缩为 .tar.gz
tar -czvf archive.tar.gz /path/to/dir
# 解压 .tar.gz
tar -xzvf archive.tar.gz
# 压缩为 .tar.bz2
tar -cjvf archive.tar.bz2 /path/to/dir
# 压缩为 .tar.xz
tar -cJvf archive.tar.xz /path/to/dir
功能:压缩为 .gz
格式(默认删除源文件)。
示例:
# 压缩文件(生成 file.txt.gz,删除原文件)
gzip file.txt
# 解压 .gz 文件
gunzip file.txt.gz
# 保留原文件压缩
gzip -c file.txt > file.txt.gz
功能:压缩为 .bz2
格式(压缩率比 gzip
更高,但更慢)。
示例:
# 压缩文件(生成 file.txt.bz2)
bzip2 file.txt
# 解压 .bz2 文件
bunzip2 file.txt.bz2
# 保留原文件压缩
bzip2 -k file.txt
功能:压缩为 .xz
格式(压缩率最高,但速度较慢)。
示例:
# 压缩文件(生成 file.txt.xz)
xz file.txt
# 解压 .xz 文件
unxz file.txt.xz
# 保留原文件压缩
xz -k file.txt
功能:跨平台的压缩格式(Windows/Linux 通用)。
示例:
# 压缩文件/目录
zip -r archive.zip /path/to/dir
# 解压 .zip 文件
unzip archive.zip
功能:高压缩率工具(需安装 p7zip
包)。
安装:
sudo apt install p7zip-full # Debian/Ubuntu
sudo yum install p7zip # CentOS/RHEL
示例:
# 压缩文件/目录
7z a archive.7z /path/to/dir
# 解压 .7z 文件
7z x archive.7z
命令 | 格式 | 特点 | 适用场景 |
---|---|---|---|
tar |
.tar.* |
多格式支持,需组合参数 | 目录打包+压缩 |
gzip |
.gz |
速度快,压缩率一般 | 单文件快速压缩 |
bzip2 |
.bz2 |
压缩率高,速度慢 | 需要更高压缩率 |
xz |
.xz |
压缩率最高,速度最慢 | 极限压缩需求 |
zip |
.zip |
跨平台兼容 | 与 Windows 共享文件 |
7z |
.7z |
超高压缩率 | 节省存储空间 |
查看压缩文件内容:
tar -tf archive.tar.gz # 查看 .tar.gz 内容
unzip -l archive.zip # 查看 .zip 内容
分卷压缩(大文件拆分):
tar -czvf - /path/to/dir | split -b 100M - archive.tar.gz.
# 合并分卷:cat archive.tar.gz.* | tar -xzvf -
快速压缩对比:
time gzip file.txt # 测试压缩时间和大小
time bzip2 file.txt
根据需求选择工具:追求速度用 gzip
,追求压缩率用 xz
或 7z
,需兼容性用 zip
。