目录
传送门
SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口
前言
不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。
以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇
一、gzip、gunzip、zip、unzip、tar概念
gzip有点坑,不保留原文件
gunzip也是不保留原文件
源文件都在
压缩是zcvf 解压是zxvf
案例4,改成了 解压到 /opt目录下
二、gzip、gunzip、zip、unzip、tar实战
在 Linux 或类 Unix 系统中,gzip
、gunzip
、zip
、unzip
和 tar
都是用于文件压缩和解压缩的工具。它们有不同的用途和工作方式,下面是它们的详细解释。
1. gzip 和 gunzip
gzip
是 GNU zip 的缩写,它是一种常用的文件压缩工具,用于压缩文件,使其体积更小,便于存储或传输。gunzip
是 gzip
的解压缩工具。
1.1 gzip
— 压缩文件
gzip
用于将一个文件压缩成 .gz
格式。它只支持对单个文件进行压缩,而不是对多个文件或目录进行压缩。
使用方式:
gzip filename
这会将
filename
文件压缩为filename.gz
,并删除原文件。保留原文件(不删除原文件):
gzip -c filename > filename.gz
查看压缩文件的内容:
gzip -l filename.gz
1.2 gunzip
— 解压文件
gunzip
用于解压 .gz
格式的压缩文件,恢复成原来的文件。
使用方式:
gunzip filename.gz
这会解压
filename.gz
文件,恢复成原始的filename
文件。解压后保留
.gz
文件:gunzip -c filename.gz > filename
2. zip 和 unzip
zip
和 unzip
是用于压缩和解压缩文件的工具,常用于创建压缩包,支持压缩多个文件或整个目录。
2.1 zip
— 创建压缩包
zip
用于将多个文件或目录压缩成 .zip
格式的文件。与 gzip
不同,zip
可以压缩多个文件和目录,并且生成一个 .zip
包。
使用方式:
zip archive.zip file1 file2 file3
这会将
file1
、file2
、file3
压缩成一个名为archive.zip
的压缩包。压缩整个目录(包括目录内的所有文件):
zip -r archive.zip directory
使用密码保护压缩包:
zip -e archive.zip file1 file2
2.2 unzip
— 解压缩 .zip
文件
unzip
用于解压 .zip
格式的压缩包。
使用方式:
unzip archive.zip
这会将
archive.zip
解压到当前目录。解压到指定目录:
unzip archive.zip -d /path/to/destination
查看压缩包的内容:
unzip -l archive.zip
3. tar
tar
(Tape Archive)是一个用于打包多个文件和目录的工具,它可以将多个文件合并成一个文件。tar
本身并不进行压缩,它通常与 gzip
或 bzip2
配合使用来实现压缩。
3.1 tar
— 打包文件
tar
用于将多个文件或目录打包成一个归档文件,通常是 .tar
格式。
创建一个归档文件(打包多个文件):
tar -cvf archive.tar file1 file2 file3
这里的选项解释:
c
:创建一个新的归档文件。v
:显示详细信息(可选)。f
:指定归档文件的名字。
打包整个目录:
tar -cvf archive.tar directory
3.2 tar
与压缩一起使用
tar
常与压缩工具(如 gzip
)结合使用,创建一个压缩的归档文件(例如 .tar.gz
或 .tgz
格式)。
- 使用
gzip
压缩归档文件:
选项解释:tar -czvf archive.tar.gz directory
c
:创建归档。z
:使用gzip
压缩。v
:显示详细信息。f
:指定文件名。
3.3 tar
— 解压和解包归档文件
tar
同时也可以用来解压 .tar
、.tar.gz
或 .tgz
等格式的归档文件。
解压
.tar
文件:tar -xvf archive.tar
解压
.tar.gz
或.tgz
文件(解压并解压缩):tar -xzvf archive.tar.gz
解压到指定目录:
tar -xzvf archive.tar.gz -C /path/to/destination
3.4 常用选项总结:
c
:创建归档文件(create)。x
:提取归档文件(extract)。v
:显示详细信息(verbose)。f
:指定归档文件的名称(file)。z
:使用gzip
压缩或解压缩。
总结
gzip
:压缩单个文件,生成.gz
格式文件。gunzip
:解压.gz
格式的压缩文件。zip
:压缩多个文件或目录,生成.zip
格式的文件。unzip
:解压.zip
格式的压缩文件。tar
:打包多个文件或目录,常与压缩工具结合使用(如gzip
),生成.tar.gz
或.tgz
格式的归档文件。
在实际使用中,选择合适的工具取决于压缩需求:如果你需要压缩多个文件并保持文件结构,通常使用 tar
;如果只需要压缩单个文件,gzip
或 zip
可能更为合适。
三、其他扩展
在 Linux 系统中,压缩和解压是常见的操作,尤其在文件传输、备份和存档过程中。Linux 提供了多种命令行工具用于压缩和解压不同格式的文件。以下是常用的 Linux 压缩和解压工具的分类和使用方法。
1. tar
tar
是最常用的归档工具,用于将多个文件或目录打包成一个文件。它本身并不进行压缩,但可以与压缩工具如 gzip
或 bzip2
等结合使用,进行压缩操作。
1.1 打包和压缩 (tar
+ gzip
/ bzip2
/ xz
)
压缩成
.tar.gz
(使用 gzip):tar -czvf archive.tar.gz directory_or_files
c
:创建归档z
:使用gzip
压缩v
:显示详细过程(可选)f
:指定归档文件名
压缩成
.tar.bz2
(使用 bzip2):tar -cjvf archive.tar.bz2 directory_or_files
j
:使用bzip2
压缩
压缩成
.tar.xz
(使用 xz):tar -cJvf archive.tar.xz directory_or_files
J
:使用xz
压缩
1.2 解压归档文件
- 解压
.tar
文件:tar -xvf archive.tar
- 解压
.tar.gz
文件:tar -xzvf archive.tar.gz
- 解压
.tar.bz2
文件:tar -xjvf archive.tar.bz2
- 解压
.tar.xz
文件:tar -xJvf archive.tar.xz
- 指定解压到某个目录:
tar -xzvf archive.tar.gz -C /path/to/destination/
2. gzip 和 gunzip
gzip
是一个常用的压缩工具,专门用于压缩单个文件。压缩后的文件通常具有 .gz
后缀。
压缩文件:
gzip filename
这将会压缩文件
filename
,并生成filename.gz
,原文件会被删除。保留原文件压缩:
gzip -c filename > filename.gz
解压
.gz
文件(使用gunzip
):gunzip filename.gz
这将解压
filename.gz
并恢复为原文件filename
。解压并保留原文件:
gunzip -c filename.gz > filename
3. zip 和 unzip
zip
是一个用于压缩文件和文件夹的工具,它支持多文件压缩并且压缩包可以跨平台使用(适用于 Windows 和 Linux)。
3.1 创建 .zip
文件
压缩文件或目录:
zip archive.zip file1 file2 file3
这将把
file1
、file2
和file3
压缩为一个名为archive.zip
的文件。递归压缩目录:
zip -r archive.zip directory
使用密码保护压缩包:
zip -e archive.zip file1 file2
3.2 解压 .zip
文件
解压压缩包:
unzip archive.zip
这将解压文件到当前目录。
解压到指定目录:
unzip archive.zip -d /path/to/destination/
4. bzip2 和 bunzip2
bzip2
是另一种文件压缩工具,通常用于压缩单个文件,生成 .bz2
格式。
4.1 压缩文件
压缩文件:
bzip2 filename
这将压缩文件
filename
并生成filename.bz2
,原文件会被删除。保留原文件:
bzip2 -k filename
4.2 解压 .bz2
文件
解压文件:
bunzip2 filename.bz2
保留原
.bz2
文件并解压:bunzip2 -k filename.bz2
5. xz 和 unxz
xz
是一种比 gzip
和 bzip2
更高效的压缩工具,常用于生成 .xz
格式的压缩文件。
5.1 压缩文件
压缩文件:
xz filename
这将压缩
filename
文件并生成filename.xz
,原文件会被删除。保留原文件:
xz -k filename
5.2 解压 .xz
文件
解压文件:
unxz filename.xz
保留原
.xz
文件并解压:unxz -k filename.xz
6. 7zip (p7zip)
7zip
是一个高效的文件压缩工具,支持多种格式(如 .7z
、.zip
、.tar
等),它的压缩比通常比其他工具更高。
6.1 安装 7zip
在一些 Linux 发行版中,7zip
可能需要安装:
sudo apt install p7zip-full # Debian/Ubuntu
sudo yum install p7zip # CentOS/RHEL
6.2 创建 .7z
压缩包
- 压缩文件或目录:
7z a archive.7z file1 file2 file3
6.3 解压 .7z
压缩包
- 解压
.7z
文件:7z x archive.7z
总结
工具 | 功能 | 常见文件格式 |
---|---|---|
tar |
打包多个文件或目录 | .tar 、.tar.gz 、.tar.bz2 、.tar.xz |
gzip |
压缩单个文件 | .gz |
gunzip |
解压 .gz 文件 |
.gz |
zip |
压缩多个文件或目录 | .zip |
unzip |
解压 .zip 文件 |
.zip |
bzip2 |
压缩单个文件 | .bz2 |
bunzip2 |
解压 .bz2 文件 |
.bz2 |
xz |
压缩单个文件 | .xz |
unxz |
解压 .xz 文件 |
.xz |
7zip |
高效压缩和解压工具 | .7z 、.zip 、.tar |
这些工具在 Linux 系统上广泛使用,帮助用户进行文件和目录的压缩、归档、解压操作。选择适合的工具可以提升文件管理效率,尤其在备份和数据传输时。