Linux 解/压缩命令详解
1、tar 命令
1.1、基本概念
tar 命令是 Linux 中最常用的归档工具,用于创建和提取归档文件。它本身只是一个归档工具,不进行压缩,但可以与其他压缩工具结合使用。
1.2、常用命令
# 创建归档文件
tar -cvf archive.tar file1 file2 directory
# 查看归档文件内容
tar -tvf archive.tar
# 提取归档文件
tar -xvf archive.tar
# 提取到指定目录
tar -xvf archive.tar -C /path/to/directory
1.3、与压缩工具结合
# 创建 gzip 压缩的归档文件
tar -czvf archive.tar.gz file1 file2
# 创建 bzip2 压缩的归档文件
tar -cjvf archive.tar.bz2 file1 file2
# 创建 xz 压缩的归档文件
tar -cJvf archive.tar.xz file1 file2
# 提取 gzip 压缩的归档文件
tar -xzvf archive.tar.gz
# 提取 bzip2 压缩的归档文件
tar -xjvf archive.tar.bz2
# 提取 xz 压缩的归档文件
tar -xJvf archive.tar.xz
1.4、高级选项
# 排除指定文件
tar -cvf archive.tar --exclude=file.txt directory
# 只包含指定文件类型
tar -cvf archive.tar --include="*.txt" directory
# 增量备份
tar -cvf archive.tar -g snapshot.file directory
# 查看压缩文件内容而不提取
tar -tzvf archive.tar.gz
2、gzip 和 gunzip 命令
2.1、基本概念
gzip(GNU zip)是一种流行的压缩工具,使用 DEFLATE 算法压缩文件。gunzip 是用于解压缩 gzip 压缩文件的命令。
2.2、常用命令
# 压缩文件
gzip file.txt
# 压缩多个文件
gzip file1.txt file2.txt
# 查看压缩文件信息
gzip -l file.txt.gz
# 解压文件
gunzip file.txt.gz
# 或者使用 gzip -d
gzip -d file.txt.gz
2.3、高级选项
# 保留原始文件
gzip -c file.txt > file.txt.gz
# 指定压缩级别(1-9,9 是最高压缩率)
gzip -9 file.txt
# 递归压缩目录
gzip -r directory
# 解压到标准输出
gunzip -c file.txt.gz > file.txt
2.4、与 tar 结合使用
# 创建 gzip 压缩的归档文件
tar -czvf archive.tar.gz directory
# 提取 gzip 压缩的归档文件
tar -xzvf archive.tar.gz
3、bzip2 和 bunzip2 命令
3.1、基本概念
bzip2 是一种比 gzip 压缩率更高的压缩工具,使用 Burrows-Wheeler 变换算法。bunzip2 是用于解压缩 bzip2 压缩文件的命令。
3.2、常用命令
# 压缩文件
bzip2 file.txt
# 压缩多个文件
bzip2 file1.txt file2.txt
# 查看压缩文件信息
bzip2 -v file.txt.bz2
# 解压文件
bunzip2 file.txt.bz2
# 或者使用 bzip2 -d
bzip2 -d file.txt.bz2
3.3、高级选项
# 保留原始文件
bzip2 -c file.txt > file.txt.bz2
# 指定压缩级别(1-9,9 是最高压缩率)
bzip2 -9 file.txt
# 递归压缩目录
bzip2 -r directory
# 解压到标准输出
bunzip2 -c file.txt.bz2 > file.txt
3.4、与 tar 结合使用
# 创建 bzip2 压缩的归档文件
tar -cjvf archive.tar.bz2 directory
# 提取 bzip2 压缩的归档文件
tar -xjvf archive.tar.bz2
4、zip 和 unzip 命令
4.1、基本概念
zip 是一种广泛使用的压缩格式,与 gzip 和 bzip2 不同,它可以压缩多个文件和目录为一个单独的压缩文件。unzip 是用于解压缩 zip 压缩文件的命令。
4.2、常用命令
# 创建压缩文件
zip archive.zip file1.txt file2.txt directory
# 查看压缩文件内容
unzip -l archive.zip
# 提取压缩文件
unzip archive.zip
# 提取到指定目录
unzip archive.zip -d /path/to/directory
4.3、高级选项
# 递归压缩目录
zip -r archive.zip directory
# 排除指定文件
zip -r archive.zip directory --exclude=*.txt
# 加密压缩文件
zip -e archive.zip file.txt
# 分卷压缩
zip -s 100m archive.zip directory
# 解压特定文件
unzip archive.zip file.txt
# 静默解压
unzip -q archive.zip
4.4、其他功能
# 测试压缩文件完整性
unzip -t archive.zip
# 修复损坏的压缩文件
zip -F archive.zip --out fixed.zip
# 创建自解压文件
zip -r -s 0 --symlinks --exec "unzip -q {} -d ./extract" archive.zip
Linux 提供了多种解/压缩命令,每种命令都有其特点和适用场景。tar 是最常用的归档工具,常与其他压缩工具结合使用;gzip 是最常用的压缩工具,速度较快;bzip2 压缩率更高,但速度较慢;zip 则是一种跨平台的压缩格式,支持更多功能。根据具体需求选择合适的工具,可以提高工作效率,节省存储空间。
相关博客:
Linux压缩打包命令——tar、zip、unzip
Linux压缩和解压缩命令大全
Linux常用命令——压缩解压缩命令