从零开始学习Linux(十):压缩解压缩命令
1、gzip
1.1、压缩
命令作用:压缩文件
命令格式:gzip [文件名]
对目录执行压缩命令:
gzip zhoujielun/
执行结果报错,提示zhoujielun/是一个目录,如下图所示:

对文件执行压缩命令:
gzip zhoujielun/faruxue

如上图所示:首先查看zhoujielun/目录下面有多少个文件,发现有faruxue和qinghuaci两个文件。执行命令压缩faruxue这个文件,并重新查看zhoujielun/目录下面文件信息。发现只有faruxue.gz文件,没有faruxue文件了。
gzip命令压缩特点:
- 压缩后格式为.gz;
- 只能压缩文件,不能压缩目录;
- 压缩后原始文件不保留;
1.2、解压缩
gzip -d [压缩包名],解压缩gz格式的压缩包。执行命令:
gzip -d faruxue.gz

2、gunzip
命令作用:解压缩.gz的压缩文件
命令格式:gunzip [压缩文件名称]
gunzip faruxue.gz

解压缩后,.gz文件会被源文件替换掉。
3、tar
3.1、压缩
命令作用:打包压缩目录
命令格式:tar [-zcvf] [压缩后的文件名] [目录]
参数说明:
- -z 打包同时压缩;
- -c 打包;
- -v 显示详细信息;
- -f 指定文件名;
将song/zhoujielun文件夹,整体打包并且同时压缩。执行命令:
tar -zcvf zhoujielun.tar.gz zhoujielun/
执行结果如下图所示:

从图中可以看到,执行打包压缩命令后,原始目录依然存在,新生成了一个 .tar.gz文件。
3.2、解压缩
命令作用:解压缩文件
命令格式:tar [-zxvf] [压缩文件名] -C [目标目录]
参数说明:
- -z 解压缩;
- -x 解包;
- -v 显示详细信息;
- -f 指定解压文件名;
注意:要解压缩的目标目录必须存在才可以。
将zhoujielun.tar.gz 文件解压缩到目录jay下面,执行命令:
tar -zxvf zhoujielun.tar.gz -C /tmp/song/jay/
命令执行结果,如下图所示:

4、zip
命令作用:压缩文件或目录
命令格式:zip [-r] [压缩后的文件名] [文件或目录]
参数说明:
- -r:压缩目录
对文件进行压缩,执行命令:
zip suyan.zip xusong/suyan

对目录xusong进行压缩,执行命令:
zip xusong.zip xusong/
执行命令并未报错,执行结果如下图所示:

此时压缩出来的压缩包并非同我们想象中的一样,将xusong整个目录以及目录里面所有的文件打包。而只是将xusong目录打包而已。
想要将整个目录以及里面的文件一起打包,需要增加参数 -r。执行命令:
zip -r xusong.zip xusong/

从图中可以看到将xusong/、xusong/suyan、xusong/duanqiaocanxue全部添加到压缩包了。
zip压缩会保留源文件,而且也会提示压缩比。zip命令的压缩比不如gzip。命令压缩后的格式zip。
5、unzip
命令作用:解压.zip格式的压缩文件;
命令格式:unzip [压缩文件] -d [目标目录]
解压缩文件到当前目录,执行命令:
unzip xusong.zip
执行结果如下图所示:

再次执行解压缩命令到当前目录下面,此时会提示是否要覆盖之前的文件。如下图所示:

解压缩文件到指定目录,执行命令:
unzip xusong.zip -d xusong01

目标目录不存在也是可以成功执行的。
6、bzip2
命令作用:压缩文件;
命令格式:bzip2 [-k] [文件]
参数说明:
- -k:保留源文件;
执行压缩文件命令:
bzip2 faruxue
执行结果,源文件被删除只保留了压缩文件。
执行压缩文件命令:
bzip2 -k qinghuaci
整个执行结果,如下图所示:

7、bunzip2
命令作用:
命令格式: bunzip2 [-k] [压缩文件名]
参数说明:
- -k:保留压缩包;
直接解压文件,不保留压缩文件,执行命令:
bunzip2 faruxue.bz2
解压文件,同时保留压缩文件,执行命令:
bunzip2 -k qinghuaci.bz2
