本文依旧属于 Linux 文件管理的基础内容,将深入解析 Linux 系统中归档与压缩的核心工具,详细介绍主流压缩工具的使用方法,旨在帮助读者掌握高效数据整理与备份文件的实用技能。
[本文基于 CentOS Linux release 7 系统环境]
前情提要:通过往期文章
我们了解了归档和压缩的基本概念、 tar 命令的基本使用方法和常见的实战技巧。
一、归档和压缩的常用命令
gzip
简介
- • 名称:gzip, gunzip, zcat - GNU zip, compress or expand files
- • 语法:
gzip|gunzip|zcat [OPTION...] [FILE]... - • 描述:基于 DEFLATE 算法的压缩工具,在速度与压缩率之间取得最佳平衡(压缩速度较快,压缩率适中),是 Linux 系统默认的压缩工具。
示例
- • 创建压缩归档
# 压缩文件(会删除原文件)gzip filename.txt # 生成 filename.txt.gz,原文件会被删除# 压缩并保留原文件gzip -k large_file.datgzip -c filename.txt > filename.txt.gz
- • 查看压缩归档
# 查看压缩文件的原始内容而不解压zcat filename.txt.gz# 查看压缩文件的统计信息gzip -l data.gz
- • 解压压缩归档
# 解压缩gzip -d filename.txt.gzgunzip filename.txt.gz
- • 测试压缩归档
# 测试压缩文件完整性gzip -t archive.tar.gz
bzip2
简介
- • bzip2, bunzip2 - a block-sorting file compressor
- • bzcat - decompresses files to stdout
- • bzip2recover - recovers data from damaged bzip2 files
- • 语法:
bzip2|bzcat|bzip2recover [OPTION...] [FILE]... - • 描述:基于 Burrows-Wheeler 变换算法的压缩工具,提供比 gzip 更高的压缩率,但速度较慢,适合对压缩率要求较高的场景。
示例
- • 创建压缩归档
# 压缩文件bzip2 filename.txt # 生成 filename.txt.bz2# 保留原文件并压缩bzip2 -k large_text.txt# 最高压缩级别bzip2 -9 database_dump.sql
- • 查看压缩归档
# 查看压缩文件内容bzcat filename.txt.bz2
- • 解压压缩归档
# 解压缩bzip2 -d archive.tar.bz2bunzip2 filename.txt.bz2
- • 测试压缩归档
# 测试压缩文件完整性bzip2 -t backup.bz2
xz
简介
- • 名称:xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and .lzma files
- • 语法:
xz|unxz|xzcat|lzma|unlzma|lzcat [option...] [file...] - • 描述:基于 LZMA2 算法的压缩工具,提供目前最高的压缩率,但速度最慢,适合对空间要求极高的场景(如用于长期存储、网络传输等)。
示例
- • 创建压缩归档
# 压缩文件xz filename.txt # 生成 filename.txt.xz# 多线程压缩(显著提升速度)xz -T4 large_video.mkv# 极限压缩模式xz -9e critical_data.bin
- • 查看压缩归档
# 查看压缩文件内容xzcat filename.txt.xz# 显示压缩文件详细信息xz -l backup.xz
- • 解压压缩归档
# 解压缩xz -d archive.tar.xzunxz filename.txt.xz
- • 测试压缩归档
# 测试压缩文件完整性xz -t backup.xz
zip
简介
- • zip - package and compress (archive) files
- • unzip - list, test and extract compressed files in a ZIP archive
- • 语法:
zip|unzip [option...] [file...] - • 描述:虽然它在 Linux 中不像
tar 那样能完美保留权限信息,但 zip 广泛支持的跨平台压缩格式,在 Windows、macOS 和 Linux 之间提供最佳兼容性。
示例
- • 创建压缩归档
# 压缩文件zip archive.zip file1.txt file2.txt# 压缩目录(-r 表示递归)zip -r archive.zip directory/# 更高压缩率zip -9 -r archive.zip directory/# 加密压缩zip -e secret.zip confidential.pdf# 分卷压缩(每卷 50MB)zip -r -s 50m large_archive.zip big_folder/
- • 查看压缩归档
# 列出 zip 文件内容unzip -l archive.zip
- • 解压压缩归档
# 解压到当前目录unzip archive.zip# 解压到指定目录unzip archive.zip -d /target/directory/# 仅解压特定文件unzip archive.zip "*.txt" -d /target/
- • 测试压缩归档
# 测试压缩文件完整性unzip -t archive.zip
二、压缩性能与压缩率权衡
选择建议:
- • 日常使用:
.tar.gz(速度与压缩率的平衡) - • 最大压缩:
.tar.xz(长期存储、空间有限)
三、结语:让文件管理变得更高效
归档与压缩是每个 Linux 用户必须掌握的基础技能。本文和往期有关归档与压缩的文章,主要介绍了 Linux 中最常用的归档与压缩工具,文中介绍的这些技能足够应对日常学习和工作中的一些任务,例如:
- • 高效备份:使用
tar 和 gzip 快速创建项目备份; - • 节省空间:通过压缩减少日志文件和文档的存储占用;
- • 方便传输:将多个文件打包压缩后通过邮件或网络传输;
俗话说:“实践是最好的老师。”看完这些有关归档与压缩的文章,你是否也有些跃跃欲试了呢?可以尝试练习以下操作:
- • 分别使用
tar、gzip 和 zip 进行归档压缩;
此番炼器手札,炉火尚未全熄。若道友观之有趣,或可暂留此间,结一尘缘。待下回开炉铸器,新得感悟,必先与同道分享。