| 格式 | 压缩工具 | 解压工具 | 特点 |
|---|---|---|---|
| .tar | tar | tar | 仅打包,不压缩 |
| .gz | gzip | gzip/gunzip | gzip压缩 |
| .bz2 | bzip2 | bunzip2 | bzip2压缩 |
| .xz | xz | unxz | xz压缩 |
| .tar.gz | tar + gzip | tar | gzip压缩的tar包 |
| .tar.bz2 | tar + bzip2 | tar | bzip2压缩的tar包 |
| .tar.xz | tar + xz | tar | xz压缩的tar包 |
| .zip | zip | unzip | Windows兼容格式 |
| .rar | rar(需安装) | unrar | RAR格式 |
# 仅打包(不压缩)
tar -cvf archive.tar /path/to/dir
# 打包并用gzip压缩
tar -czvf archive.tar.gz /path/to/dir
# 打包并用bzip2压缩
tar -cjvf archive.tar.bz2 /path/to/dir
# 打包并用xz压缩
tar -cJvf archive.tar.xz /path/to/dir
# 解压tar包
tar -xvf archive.tar
# 解压tar.gz包
tar -xzvf archive.tar.gz
# 解压tar.bz2包
tar -xjvf archive.tar.bz2
# 解压tar.xz包
tar -xJvf archive.tar.xz
# 仅查看压缩包内容(不解压)
tar -tzf archive.tar.gz
tar -tjf archive.tar.bz2
# 解压到指定目录
tar -xzvf archive.tar.gz -C /target/directory
2. gzip/gunzip
# 压缩文件(生成.gz文件,删除原文件)
gzip file.txt
# 保留原文件压缩
gzip -c file.txt > file.txt.gz
# 解压.gz文件
gunzip file.txt.gz
# 或
gzip -d file.txt.gz
# 压缩级别(1-9,9最高压缩率)
gzip -9 file.txt
3. bzip2/bunzip2
# 压缩文件
bzip2 file.txt
# 保留原文件压缩
bzip2 -k file.txt
# 解压.bz2文件
bunzip2 file.txt.bz2
# 或
bzip2 -d file.txt.bz2
4. xz/unxz
# 压缩文件
xz file.txt
# 保留原文件压缩
xz -k file.txt
# 解压.xz文件
unxz file.txt.xz
# 或
xz -d file.txt.xz
5. zip/unzip
# 压缩文件或目录
zip -r archive.zip /path/to/dir
# 加密压缩(设置密码)
zip -re archive.zip /path/to/dir
# 解压zip文件
unzip archive.zip
# 解压到指定目录
unzip archive.zip -d /target/directory
# 查看zip文件内容
unzip -l archive.zip
6. 7z(需安装p7zip)
# 安装
yum install p7zip p7zip-plugins
# 压缩
7z a archive.7z /path/to/dir
# 解压
7z x archive.7z
# 查找并打包
find /path -name "*.log" -exec tar -czvf logs.tar.gz {} +
# 打包排除某些文件
tar -czvf backup.tar.gz --exclude="*.tmp" --exclude="temp/" /path/to/dir
2. 分卷压缩
# 分割为100MB的文件
tar -czvf - /path/to/dir | split -b 100M - backup.tar.gz.
# 合并并解压
cat backup.tar.gz.* | tar -xzvf -
3. 网络传输
# 压缩并通过SSH传输
tar -czf - /path/to/dir | ssh user@host "tar -xzf - -C /target"
# 下载并解压
wget -O - http://example.com/file.tar.gz | tar -xzvf -
4. 性能比较
# 测试压缩时间(time命令)
time tar -czf test.tar.gz /path/to/dir
time tar -cjf test.tar.bz2 /path/to/dir
time tar -cJf test.tar.xz /path/to/dir
# 安装zip/unzip
yum install zip unzip
# 安装rar/unrar(需EPEL源)
yum install epel-release
yum install rar unrar
# 安装7z
yum install p7zip p7zip-plugins
-h选项
大文件:对于大文件,xz压缩率最高但最慢
兼容性:# 最常用组合
压缩:tar -czvf 文件名.tar.gz 目录名
解压:tar -xzvf 文件名.tar.gz
压缩:tar -cjvf 文件名.tar.bz2 目录名
解压:tar -xjvf 文件名.tar.bz2
建议根据需求选择合适的压缩格式:需要高压缩率用xz,需要快速压缩用gzip,需要兼容Windows用zip。