Linux文件打包与压缩全指南
适用系统说明
- RPM系(CentOS/RHEL/Fedora):原生支持tar/gzip/bzip2/xz,需额外安装zip/unzip/7z
- Debian系 (Debian/Ubuntu):默认支持tar/gzip/bzip2/xz/zip,需
apt install p7zip-full
安装7z - Arch系(Arch/Manjaro):通过pacman安装所有压缩工具
一、核心工具详解
1. ZIP跨平台压缩
安装部署
RedHat系
sudo yum install zip unzip
Debian系
sudo apt install zip unzip
压缩操作
bash
zip -r -9 -e secure.zip /path/to/dir # 递归压缩+最高压缩率+加密
- 关键参数 :
-r
:递归子目录(必须用于目录压缩)-s 100m
:分卷压缩(生成secure.z01, secure.z02等)-e
:设置密码(交互式输入)-T
:压缩后验证文件完整性
解压操作
bash
unzip -P 密码 -O gbk windows.zip # 处理中文编码文件
- 高级技巧 :
- 修复损坏压缩包:
zip -F broken.zip --out fixed.zip
- 查看压缩内容:
unzip -l archive.zip | grep keyword
- 修复损坏压缩包:
2. TAR归档工具
多格式压缩支持
压缩类型 | 命令参数 | 文件后缀 | 适用场景 |
---|---|---|---|
Gzip | tar -zcvf |
.tar.gz | 快速压缩(默认)1 |
Bzip2 | tar -jcvf |
.tar.bz2 | 高压缩率需求 |
XZ | tar -Jcvf |
.tar.xz | 极致压缩率 |
无压缩 | tar -cvf |
.tar | 临时归档 |
高级操作示例
bash
# 增量备份(仅打包24小时内修改的文件)
tar -cvf backup_$(date +%F).tar --newer-mtime="1 day ago" /data
# 排除指定文件类型
tar -zcvf project.tar.gz --exclude="*.tmp" --exclude=".git" ./project
3. 高效压缩工具
单文件压缩对比
工具 | 压缩命令 | 解压命令 | 压缩率 | 速度 | 适用场景 |
---|---|---|---|---|---|
gzip | gzip -9 file |
gunzip file.gz |
中 | 快 | 日志文件快速压缩 |
bzip2 | bzip2 -k file |
bunzip2 file.bz2 |
高 | 慢 | 长期存储文件 |
xz | xz -eT4 file |
unxz file.xz |
最高 | 最慢 | 发行版镜像文件 |
注:
-k
参数保留源文件,-T4
启用4线程加速
二、企业级场景解决方案
1. 加密压缩传输
bash
# GPG加密+压缩组合方案
tar zcvf - /sensitive_data | gpg --symmetric --cipher-algo AES256 -o backup.tar.gz.gpg
- 解密解压:
gpg -d backup.tar.gz.gpg | tar zxvf -
2. 分卷压缩大文件
bash
# 拆分10GB文件为多个1GB分卷(支持续传)
7z a -v1g -mx=9 bigfile.7z bigfile.iso
- 解压时只需操作第一个分卷:
7z x bigfile.7z.001
3. 自动化备份脚本
bash
#!/bin/bash
BACKUP_NAME="dbbackup_$(date +%Y%m%d)"
tar -cpvzf ${BACKUP_NAME}.tar.gz \
--exclude="*.sock" \
--warning=no-file-changed \
/var/lib/mysql
使用
--warning=no-file-changed
忽略运行中数据库文件变化警告
三、性能优化指南
1. 压缩参数调优
工具 | 最佳参数组合 | 效果 |
---|---|---|
gzip | gzip -6 |
平衡速度与压缩率(默认级别) |
xz | xz -T0 -6 |
多线程压缩(T0=自动检测核心数) |
7z | 7z a -mmt=on -mx=9 |
启用多线程+最大压缩率 |
2. 压缩格式选择矩阵
文件类型 | 推荐格式 | 理由 |
---|---|---|
文本日志 | gzip | 快速压缩/高频访问 |
数据库备份 | xz | 节省存储空间 |
Windows共享文件 | zip | 跨平台兼容性 |
长期归档数据 | bzip2 | 平衡压缩率与解压速度 |
四、故障排查手册
1. 常见错误处理
-
解压CRC校验错误:
bashunzip -t corrupted.zip # 检测损坏文件 zip -FF corrupted.zip --out repaired.zip # 尝试修复
-
tar文件头损坏:
bashdd if=broken.tar bs=1M skip=1000 | tar zxvf - # 跳过损坏部分提取
-
内存不足导致压缩失败:
bash7z a -m0=PPMd:d256m -mmem=2G hugefile.7z /bigdata # 限制内存使用
五、扩展工具推荐
1. 图形化工具
- Ark(KDE):支持18种压缩格式,集成文件预览
- File Roller(GNOME):原生支持7z/rar密码管理器集成
2. 高级压缩工具
工具 | 安装命令 | 特色功能 |
---|---|---|
zstd | sudo apt install zstd |
Facebook研发,高速压缩 |
lrzip | yum install lrzip |
基于LZMA的长期归档优化 |
pigz | brew install pigz |
多线程gzip替代方案 |