Linux 压缩与解压缩详解
目录
为什么需要压缩?
1、gzip命令
2、gunzip命令
3、bzip2命令
4、bzip2命令
5、zip 命令
1:将多个文件压缩为一个zip文件
2:将多个目录压缩为一个zip文件
3:将目录压缩,并且其子目录和文件也都压缩
6、zipinfo 命令
7、unzip命令
8、tar命令
为什么需要压缩?
1、gzip命令
“gzip” 命令用于在 Linux 系统中创建 GZ 格式的压缩文件。
基本语法:gzip [选项] 压缩文件名
- 压缩后的文件后缀名为 *.gz
- 只能用于压缩单个文件,不能压缩文件夹
- 不能将多个文件压缩成一个压缩文文件,只会将多个文件分别压缩称 *.gz文件
命令选项 | 说明 |
---|---|
-d(实用) | 解压缩 *.gz 文件 |
-r(实用) | 递归压缩所有子文件(将文件夹中的子文件分别压缩为.gz文件) gzip -r directory : 压缩directory 目录和其子目录的所有文件 |
-l | 列出压缩文件的相关信息 |
-v | 显示执行过程中的详细信息 |
-k | 保留原文件(默认情况下,原文件压缩后会被删除) 在有的Linux发行版本中这个参数可能无效 |
2、gunzip命令
基本语法:gunzip [选项] 压缩文件名
- 解压缩.gz文件
- gunzip *.gz 等价于 gzip -d *.gz
- gunzip -r *gz 递归解压缩目录或者子目录的所有.gz文件
3、bzip2命令
"bzip2"命令用于在Linux系统中创建BZ2格式的压缩文件
它的优点是通常能提供比 “gzip” 更高的压缩比,但压缩和解压缩的速度相对较慢。
- 只能压缩单个文件
- 基本语法:bzip2 [选项] 要压缩文件
-k
:保留原始文件,不删除。默认情况下,“bzip2” 会删除原始文件。-v
:显示详细的压缩过程信息。-f
:强制覆盖已存在的输出文件。
5、zip 命令
“zip” 命令用于在 Linux 系统中创建 ZIP 格式的压缩文件。
基本语法:zip [选项] 压缩文件名 文件列表或目录列表
选项 | 说明 |
---|---|
-r(实用) | 递归压缩目录及其子目录的文件 |
-m | 压缩完成后删除原文件 |
-q | 安静模式,不显示压缩过程的详细信息 |
- 将多个文件压缩为一个zip文件
- 将多个目录压缩为一个zip文件
- 将目录压缩,并且其子目录和文件也都压缩
6、zipinfo 命令
“zipinfo” 命令用于查看 ZIP 压缩文件的详细信息。
基本语法:zipinfo [选项] 压缩文件名
-h | 显示概要信息 |
-l | 显示详细的文件列表信息,包括文件名,压缩前后的大小、日期 zipinfo *.zip 等价于 zipinfo -l *.zip |
7、unzip命令
“unzip” 命令用于解压缩 ZIP 格式的压缩文件。
基本语法是:unzip [选项] 压缩文件名
-d 目录
:指定解压缩到的目标目录,若不指定则默认解压缩到当前目录。-l
:只列出压缩文件中的文件列表,而不进行解压缩。-n
:不覆盖已存在的文件。-x <文件列表>
:排除指定的文件,不解压这些文件。
解压缩到的目标目录
unzip *.zip -d directory
查看压缩文件中的文件列表
unzip -l *.zip
排除指定的文件不解压 并指定压缩到目标目录
unzip *.zip -x test1.txt.zip test2.txt.zip -d directory
8、tar命令
“tar” 命令主要用于将多个文件和目录打包成一个归档文件(tarball),也可以对 tarball 进行解包、查看等操作。
选项 | 说明 |
---|---|
-c | 创建归档文件 |
-v | 显示详细信息 |
-f | 指定归档文件 |
-t | 查看归档文件列表 |
-x | 解包 |
-z | 使用gzip 压缩/解压缩归档 |
-j | 使用bzip2压缩/解压缩归档 |
-C 目录 | 指定解包到目标目录 |
将多个文件和目录打包
tar -cvf archive.tar b directory1 d.zip
查看归档文件内容
tar -tf achive.tar
将归档文件解包到指定目录
tar -xvf achive.tar -C destination
使用 -z 将归档文件压缩成 *..gz 文件
tar -czvf achive.tar.gz directory1 test.txt
使用 -j 将归档文件压缩成 *..bz2 文件
tar -czvf achive.tar.gz directory1 test.txt
解包并解压归档压缩文件
tar -xzvf achive.tar.gz -x destinaton/