在Linux环境下,归档压缩是指将多个文件或目录整合为单个文件(归档),并通过压缩算法减小其体积的过程。这一操作主要用于数据备份、节省存储空间或高效传输文件。

归档(Archiving)与压缩(Compression)在Linux中是两个独立但常结合使用的步骤:
1. 归档工具(如tar):将多个文件/目录合并为一个文件(如.tar格式),但不会自动压缩。
2. 压缩工具(如gzip、bzip2、xz):对归档文件应用压缩算法生成体积更小的文件(如.tar.gz)。
常用命令对比表
| 工具 | 扩展名 | 压缩算法 | 压缩率 | 速度 | 典型命令 |
|---|---|---|---|---|---|
| tar(仅归档) | .tar | 无压缩 | — | 最快 | tar -cvf archive.tar dir/ |
| gzip | .tar.gz /.tgz | DEFLATE | 中等 | 快 | tar -czvf archive.tar.gz dir/ |
| bzip2 | .tar.bz2 | Burrows-Wheeler | 较高 | 较慢 | tar -cjvf archive.tar.bz2 dir/ |
| xz | .tar.xz | LZMA2 | 最高 | 最慢 | tar -cJvf archive.tar.xz dir/ |
| zip | .zip | DEFLATE | 中等 | 中等 | zip -r archive.zip dir/ |
1. 归档保留元数据:tar命令默认保留文件权限、所有权和时间戳,适用于系统备份。
2. 排除特定文件:通过--exclude参数忽略不需要归档的文件(如tar --exclude='*.log' -czvf backup.tar.gz /data)。
3. 分卷压缩:大文件可使用split命令分割压缩包(如tar -czvf - dir/ | split -b 2G - backup.tar.gz.part)。
4. 性能权衡:高压缩率工具(如xz)适合网络传输,快速压缩工具(如gzip)更适合日常临时使用。
增量备份:结合--listed-incremental参数实现差分备份:
tar --listed-incremental=snapshot.snar -czvf full_backup.tar.gz /data
tar --listed-incremental=snapshot.snar -czvf incremental_backup.tar.gz /data
跨平台兼容:使用zip格式压缩(兼容Windows/macOS):
zip -r -9 archive.zip dir/ (-9表示最高压缩级别)
| 文件类型 | 解压命令 |
|---|---|
| .tar | tar -xvf file.tar |
| .tar.gz | tar -xzvf file.tar.gz |
| .tar.bz2 | tar -xjvf file.tar.bz2 |
| .tar.xz | tar -xJvf file.tar.xz |
| .zip | unzip file.zip |
注意:压缩率与速度通常成反比,建议根据存储/传输需求选择工具。xz的极高压缩率需牺牲时间,而gzip在多数场景下能兼顾效率与效果。

查看详情

查看详情