Linux 压缩与解压完全指南
基础介绍
压缩 (Compression)
压缩是一种通过算法减少文件大小的技术,从而节省存储空间和带宽。压缩的原理是消除数据中的冗余信息,将文件转换成更小的格式。
工作原理简图:
1 | |
在Linux系统中,压缩主要用于:
- 节省磁盘空间。
- 方便文件传输(例如通过网络)。
- 创建归档文件,便于备份和管理。
解压 (Decompression)
解压缩是压缩的逆过程,将压缩后的文件恢复为原始文件。
工作原理简图:
1 | |
常用命令
| 命令 | 参数 | 说明 | 频率 |
|---|---|---|---|
gzip |
-d (解压), -l (列出压缩文件信息), -r (递归处理目录), -v (显示详细信息) |
使用DEFLATE算法压缩文件,生成 .gz 文件。解压使用 gzip -d 或 gunzip。 |
★★★☆ |
gunzip |
无 | 解压 .gz 文件,等同于 gzip -d。 |
★★★☆ |
tar |
-c (创建归档), -x (解开归档), -v (显示详细信息), -f (指定文件名), -z (使用gzip), -j (使用bzip2), -J (使用xz), -t (列出归档内容) |
将多个文件或目录打包成一个归档文件(.tar),常与 gzip, bzip2, xz 等压缩工具结合使用。 |
★★★★ |
bzip2 |
-d (解压), -k (保留原文件), -z (压缩), -v (显示详细信息) |
使用Burrows-Wheeler算法压缩文件,生成 .bz2 文件。压缩率通常比 gzip 高,但速度较慢。解压使用 bzip2 -d 或 bunzip2。 |
★★☆☆ |
bunzip2 |
无 | 解压 .bz2 文件,等同于 bzip2 -d。 |
★★☆☆ |
xz |
-d (解压), -k (保留原文件), -z (压缩), -v (显示详细信息), -T (指定线程数) |
使用LZMA2算法压缩文件,生成 .xz 文件。压缩率通常比 gzip 和 bzip2 更高,但速度也更慢。解压使用 xz -d 或 unxz。 |
★☆☆☆ |
unxz |
无 | 解压 .xz 文件,等同于 xz -d。 |
★☆☆☆ |
zip |
-r (递归处理目录), -e (加密) |
创建 .zip 格式的压缩文件。 |
★★☆☆ |
unzip |
无 | 解压 .zip 格式的压缩文件。 |
★★☆☆ |
⚠️ 高危操作警告: 使用 -r 参数递归处理目录时,请务必确认操作对象,避免误删或覆盖重要文件。
示例代码
场景 1:使用 gzip 压缩和解压单个文件
- 压缩文件:
1 | |
这将生成一个名为 my_document.txt.gz 的压缩文件。
- 解压文件:
1 | |
这会将 my_document.txt.gz 解压回 my_document.txt。
场景 2:使用 tar 和 gzip 归档和压缩目录
- 创建归档并压缩:
1 | |
-c: 创建归档文件。-z: 使用gzip压缩。-v: 显示详细信息。-f: 指定归档文件名。
这将创建一个名为 my_directory.tar.gz 的归档文件,其中包含 my_directory 目录的内容。
- 解压归档文件:
1 | |
-x: 解开归档文件。-z: 使用gzip解压。-v: 显示详细信息。-f: 指定归档文件名。
这会将 my_directory.tar.gz 解压到当前目录。
场景 3:使用 tar 和 bzip2 归档和压缩目录
- 创建归档并压缩:
1 | |
-c: 创建归档文件。-j: 使用bzip2压缩。-v: 显示详细信息。-f: 指定归档文件名。
这将创建一个名为 my_directory.tar.bz2 的归档文件,其中包含 my_directory 目录的内容。
- 解压归档文件:
1 | |
-x: 解开归档文件。-j: 使用bzip2解压。-v: 显示详细信息。-f: 指定归档文件名。
这会将 my_directory.tar.bz2 解压到当前目录。
场景 4:使用 tar 和 xz 归档和压缩目录
- 创建归档并压缩:
1 | |
-c: 创建归档文件。-J: 使用xz压缩。-v: 显示详细信息。-f: 指定归档文件名。
这将创建一个名为 my_directory.tar.xz 的归档文件,其中包含 my_directory 目录的内容。
- 解压归档文件:
1 | |
-x: 解开归档文件。-J: 使用xz解压。-v: 显示详细信息。-f: 指定归档文件名。
这会将 my_directory.tar.xz 解压到当前目录。
场景 5:使用 zip 压缩文件和目录
- 压缩文件:
1 | |
- 压缩目录(递归):
1 | |
- 解压文件:
1 | |
预期输出示例
在成功压缩或解压后,终端通常会显示操作的详细信息,例如压缩比率,已处理的文件等。如果没有错误,则不会有任何错误提示。
Metadata
- Tags: Linux, 压缩, 解压, gzip, tar, bzip2, xz, zip, 文件管理, 归档, Compression, Decompression
- Categories: 系统管理, 文件操作