前言
这一篇介绍的是Linux中的压缩和解压缩的相关知识,我们应该要非常熟悉的命令了,
因为在安装一些软件的时候解压缩是不可缺少的环节。
常用的压缩格式有两种:gzip和bzip,在bzip的基础上出现了新的压缩格式bzip2。
gzip和bzip2之间的区别:
- gzip 压缩时间短,但是压缩比低。压缩用gzip命令
- bzip2 压缩时间长,但是压缩比高
一、压缩解压缩格式 .gz
1.1 将文件压缩为 .gz 格式,只能压缩文件:gzip
- 命令名称:gzip
- 英文原意:GNU zip
- 命令所在路径:/bin/gzip
- 功能描述:压缩文件,压缩后格式为.gz
- 语法: gzip【需要压缩的文件】
- 压缩后文件格式:.gz
- 注意:只能压缩文件,不能压缩目录;压缩完后不保留原文件
举例:
[lance@master ~]$ ll
-rw-rw-r--. 1 kevin kevin 46 Mar 30 15:32 lance.txt
[lance@master ~]$ gzip lance.txt
[lance@master ~]$ ll
-rw-rw-r--. 1 lance lance 73 Mar 30 15:32 lance.txt.gz
1.2 将 .gz 文件解压:gunzip
- 命令名称:gunzip
- 英文原意:GNU unzip
- 命令所在路径:/bin/gunzip
- 执行权限:所有用户
- 功能描述:将格式为.gz的压缩文件解压
- 语法: gunzip【压缩文件名】
- 注意:解压后不保留原文件
举例:
[lance@master ~]$ gunzip lance.txt.gz
[lance@master ~]$ ll
-rw-rw-r--. 1 lance lance 46 Mar 30 15:32 lance.txt
二、压缩解压缩格式 .tar.gz
2.1 将文件或目录压缩为 .tar.gz 格式:tar -zcf
- 命令名称:tar
- 命令所在路径:/bin/tar
- 执行权限:所有用户
- 功能描述:将文件压缩为.tar.gz格式
- 语法: tar 选项【-zcf】【压缩后文件名】【目录】
-c 打包
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩 - 压缩后文件格式:.tar.gz
举例:将家目录下的softwere目录压缩为softwere.tar.gz
[lance@master ~]$ ll
drwxrwxr-x. 2 lance lance 66 Feb 22 00:31 softwere
[lance@master ~]$ tar -zcvf softwere.tar.gz softwere/
softwere/
softwere/jdk-8u131-linux-x64.tar.gz
softwere/redis-4.0.6.tar.gz
[lance@master ~]$ ll
drwxrwxr-x. 2 lance lance 66 Feb 22 00:31 softwere
-rw-rw-r--. 1 lance lance 186635622 Mar 31 13:20 softwere.tar.gz
与前面的gzip命令不同,通过tar压缩后是保留原文件或原目录的。
2.2 将 .tar.gz 文件解压:tar -zxf
- 命令名称:tar
- 命令所在路径:/bin/tar
- 执行权限:所有用户
- 功能描述:将格式为.tar.gz的压缩文件解压
- 语法: tar 选项【-zxf】【.tar.gz的压缩文件名】【指定解压后的文件存放目录,默认当前目录】
-x 解包
-v 显示详细信息
-f 指定解压文件
-z 解压缩
举例:将刚才打包的softwere.tar.gz解压至当前目录
tar -zxf softwere.tar.gz
如果要解压到指定目录
tar -zxf soft.tar.gz -C /opt
2.3 拓展tar
归档就是我们有很多零碎的文件我们需要把它归档当一个包里面
归档和解档都用的是tar命令,只不过跟的选项不一样。
- 归档:tar [zcvf] package_name file(s)
- 解档:tar [zxvf] package_name
当解档时需要指定解档路径时使用“-C”选项,即tar zxvf package_name -C destination_dir
归档操作:
tar -cf c.tar c.txt
-c表示创建的意思
-f指定一个所要创建的文件名
所以也可以写成tar -f c.tar -c c.txt
归档并压缩
在tar中有-z是使用gzip压缩,-j是使用bzip2压缩
tar -zcf c.tar.gz c.txt
tar -jcf c.tar.bz2 c.txt
显示压缩的详细信息使用-v
tar -zcvf ch.tar.gz c.txt h.txt
解档操作:
我们解档ch.tar.gz
tar -zxvf ch.tar.gz
解档到指定的目录文件
tar -zxvf ch.tar.gz -C abc
三、压缩解压缩格式 .zip
3.1 将文件或目录压缩为 .zip 格式:zip
- 命令名称:zip
- 命令所在路径:/usr/bin/zip
- 执行权限:所有用户
- 功能描述:将文件或目录压缩为.zip格式
- 语法: zip 选项【-r】【压缩后文件名】【文件或目录】
-r 压缩目录 - 压缩后文件格式:.zip
举例:将家目录的lntest目录压缩为lntest.zip
[lance@master ~]$ zip -r lntest.zip lntest/
-bash: zip: command not found
[lance@master ~]$ su root
Password:
[root@master lance]# yum install -y unzip zip
[root@master lance]# exit
exit
[lance@master ~]$ zip -r lntest.zip lntest/
adding: lntest/ (stored 0%)
adding: lntest/soft.txt.s (stored 0%)
adding: lntest/soft.txt (stored 0%)
adding: lntest/soft.txt.s.s1 (stored 0%)
[lance@master ~]$ ll
drwxrwxr-x. 2 lance lance 61 Mar 30 18:22 lntest
-rw-rw-r--. 1 lance lance 652 Mar 31 13:31 lntest.zip
注意:如果你没有安装zip需要切换到root用户去安装zip
通过zip压缩后是保留原文件或原目录的。
3.2 将 .zip 文件解压:unzip
- 命令名称:unzip
- 命令所在路径:/usr/bin/unzip
- 执行权限:所有用户
- 功能描述:将格式为.zip的压缩文件解压
- 语法: uzip【.zip的压缩文件名】
举例:将lntest删除,然后在加压缩lntest.zip
[lance@master ~]$ ll
drwxrwxr-x. 2 lance lance 61 Mar 30 18:22 lntest
-rw-rw-r--. 1 lance lance 652 Mar 31 13:31 lntest.zip
[lance@master ~]$ rm -rf lntest
[lance@master ~]$ unzip lntest.zip
Archive: lntest.zip
creating: lntest/
extracting: lntest/soft.txt.s
extracting: lntest/soft.txt
extracting: lntest/soft.txt.s.s1
[lance@master ~]$ ll
drwxrwxr-x. 2 lance lance 61 Mar 30 18:22 lntest
-rw-rw-r--. 1 lance lance 652 Mar 31 13:31 lntest.zip
解压之后也是保留原文件的
四、压缩解压缩格式 .bz2
4.1 将文件压缩为 .bz2 格式,只能压缩文件:bzip2
- 命令名称:bzip2
- 命令所在路径:/usr/bin/bzip2
- 执行权限:所有用户
- 功能描述:将文件压缩为.bz2 格式
- 语法: bzip2 选项【-k】 【文件】
-k 产生压缩文件后保留原文件 - 压缩后文件格式:.bz2
安装:切换到root用户进行安装
[lance@master ~]$ su root
Password:
[root@master lance]# yum -y install bzip2 bunzip2
Loaded plugins: fastestmirror
举例:
[lance@master ~]$ bzip2 -k lntest
bzip2: Input file lntest is a directory.
[lance@master ~]$ ll
-rw-rw-r--. 1 lance lance 46 Mar 30 15:32 lance.txt
drwxrwxr-x. 2 lance lance 61 Mar 30 18:22 lntest
-rw-rw-r--. 1 lance lance 652 Mar 31 13:31 lntest.zip
[lance@master ~]$ bzip2 -k lance.txt
[lance@master ~]$ ll
-rw-rw-r--. 1 lance lance 46 Mar 30 15:32 lance.txt
-rw-rw-r--. 1 lance lance 78 Mar 30 15:32 lance.txt.bz2
4.2 将 .bz2 文件解压:bunzip2
- 命令名称:bunzip2
- 命令所在路径:/usr/bin/bunzip2
- 执行权限:所有用户
- 功能描述:将格式为.bz2的压缩文件解压
- 语法: bunzip2 选项【-k】 【压缩文件】
-k 产生压缩文件后保留原文件
举例:将lance.txt删除,然后加压lance.txt.bz2
[lance@master ~]$ rm -rf lance.txt
[lance@master ~]$ bunzip2 lance.txt.bz2
[lance@master ~]$ ll
-rw-rw-r--. 1 lance lance 46 Mar 30 15:32 lance.txt
五、总结
以上是我们总结了Linux中的压缩和解压缩的命令,在工作中我们用的最多的还是tar命令,
因为现在很多源码包都是.tar.gz的格式,通过 tar -zxvf 能完成解压。
然后对于.zip格式的文件使用gunzip 命令解压,对于.zip格式的文件,使用unzip 命令
解压,最后对于比较大的文件我们使用bunzip2命令来进行解压。