一、Linux的zip命令
1、基本格式
[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表
选项 | 含义 |
-r | 递归压缩目录,及将制定目录下的所有文件以及子目录全部压缩。 |
-m | 将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中。 |
-v | 显示详细的压缩过程信息。 |
-q | 在压缩的时候不显示命令的执行过程。 |
-压缩级别 | 压缩级别是从 1~9 的数字,-1 代表压缩速度更快,-9 代表压缩效果更好。 |
-u | 更新压缩文件,即往压缩文件中添加新文件。 |
2、使用zip
[root@localhost ~]# zip test.zip install.log install.log.syslog
adding: install.log (deflated 72%)
adding: install.log.syslog (deflated 85%)
#同时压缩多个文件到test.zip压缩包中
[root@localhost ~]# mkdir dir1
#建立测试目录
[root@localhost ~]# zip -r dir1.zip dir1
adding: dir1/(stored 0%)
#压缩目录
注意:(1)所有的压缩命令都可以同时压缩多个文件
(2) 使用 zip 命令压缩目录,需要使用“-r”选项
二、unzip命令:解压zip文件
1、基本格式
[root@localhost ~]# unzip [选项] 压缩包名
选项 | 含义 |
-d 目录名 | 将压缩文件解压到指定目录下。 |
-n | 解压时并不覆盖已经存在的文件。 |
-o | 解压时覆盖已经存在的文件,并且无需用户确认。 |
-v | 查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。 |
-t | 测试压缩文件有无损坏,但并不解压。 |
-x 文件列表 | 解压文件,但不包含文件列表中指定的文件。 |
2、应用
[root@localhost ~]# unzip dir1.zip
直接解压缩
[root@localhost ~]# unzip -d /tmp/ ana.zip
用-d手动制定解压缩位置
三、gzip命令:压缩文件或目录
gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件。
1、基本格式
[root@localhost ~]# gzip [选项] 源文件
选项 | 含义 |
---|---|
-c | 将压缩数据输出到标准输出中,并保留源文件。 |
-d | 对压缩文件进行解压缩。 |
-r | 递归压缩指定目录下以及子目录下的所有文件。 |
-v | 对于每个压缩和解压缩的文件,显示相应的文件名和压缩比。 |
-l | 对每一个压缩文件,显示以下字段:
|
-数字 | 用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6。 |
2、基本压缩与保留源文件压缩
[root@localhost ~]# gzip install.log
#压缩instal.log 文件
在使用 gzip 命令压缩文件时,源文件会消失
[root@localhost ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz
#使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中,
#这样可以缩文件的同时不删除源文件
[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1
[root@localhost ~]# touch test/test2
[root@localhost ~]# touch test/test3 #建立测试目录,并在里面建立几个测试文件
[root@localhost ~]# gzip -r test/
#压缩目录,并没有报错
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog test
#但是查看发现test目录依然存在,并没有变为压缩文件
[root@localhost ~]# ls test/
testl .gz test2.gz test3.gz
#原来gzip命令不会打包目录,而是把目录下所有的子文件分别压缩
在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。
四、gunzip命令:解压被 gzip 压缩过的文件(扩展名为 .gz)
对于解压被 gzip 压缩过的文件,还可以使用 gzip 自己,即 gzip -d 压缩包。
1、基本格式
[root@localhost ~]# gunzip [选项] 文件
选项 | 含义 |
---|---|
-r | 递归处理,解压缩指定目录下以及子目录下的所有文件。 |
-c | 把解压缩后的文件输出到标准输出设备。 |
-f | 强制解压缩文件,不理会文件是否已存在等情况。 |
-l | 列出压缩文件内容。 |
-v | 显示命令执行过程。 |
-t | 测试压缩文件是否正常,但不对其做解压缩操作。 |
2、应用实例
[root@localhost ~]# gunzip install.log.gz
# 当然,"gunzip -r"依然只会解压缩目录下的文件,而不会解打包。
#要想解压缩".gz"格式,还可以使用 "gzip -d"命令
[root@localhost ~]# gzip -d anaconda-ks.cfg.gz
[root@localhost ~]# gunzip -r test/
# 要解压缩目录下的内容,则需使用 "-r" 选项
[root@localhost ~]# zcat anaconda-ks.cfg.gz
# 如果我们压缩的是一个纯文本文件,则可以直接使用
# zcat 命令在不解压缩的情况下查看这个文本文件中的内容
五、bzip2命令:压缩文件(.bz2格式)
bzip2 命令同 gzip 命令类似,只能对文件进行压缩,对于目录只能压缩该目录及子目录下的所有文件。当执行压缩任务完成后,会生成一个以“.bz2”为后缀的压缩包。
注意:(.bz2) 压缩性能好,(.gz)压缩时间快
(.bz2)不能压缩目录 (.gz)可以用-r压缩目录下的东西,但不会打包
1、基本格式
[root@localhost ~]# bzip2 [选项] 源文件
选项 | 含义 |
---|---|
-d | 执行解压缩,此时该选项后的源文件应为标记有 .bz2 后缀的压缩包文件。 |
-k | bzip2 在压缩或解压缩任务完成后,会删除原始文件,若要保留原始文件,可使用此选项。 |
-f | bzip2 在压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件,若使用此选项,则会强制覆盖现有文件。 |
-t | 测试压缩包文件的完整性。 |
-v | 压缩或解压缩文件时,显示详细信息。 |
-数字 | 这个参数和 gzip 命令的作用一样,用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高 |
2、 使用
[root@localhost ~]# bzip2 anaconda-ks.cfg
此压缩命令会在压缩的同时删除源文件。
[root@localhost ~]# bzip2 -k install.log.syslog
#压缩文件和源文件都存在
六、bunzip2命令:bz2格式的解压缩命令
要解压“.bz2”格式的压缩包文件,除了使用“bzip2 -d 压缩包名”命令外,还可以使用 bunzip2 命令。bunzip2 命令的使用和 gunzip 命令大致相同,bunzip2 命令只能用于解压文件,即便解压目录,也是解压该目录以及所含子目录下的所有文件。
1、基本格式
[root@localhost ~]# bunzip2 [选项] 源文件
选项 | 含义 |
---|---|
-k | 解压缩后,默认会删除原来的压缩文件。若要保留压缩文件,需使用此参数。 |
-f | 解压缩时,若输出的文件与现有文件同名时,默认不会覆盖现有的文件。若要覆盖,可使用此选项。 |
-v | 显示命令执行过程。 |
-L | 列出压缩文件内容。 |
2、使用
[root@localhost ~]# bunzip2 anaconda-ks.cfg.bz2
#先试试使用 gunzip2 命令来进行解压缩
[root@localhost ~]# bzip2 -d install.log.syslog.bz2
#".bz2" 格式也可以使用 "bzip2 -d 压缩包" 命令来进行解压缩
[root@localhost ~]# bzcat install.log.syslog.bz2
和 ".gz" 格式一样,".bz2" 格式压缩的纯文本文件也可以不解压缩直接查看,
使用的命令是 bzcat
七、总结
1、 tar命令是打包命令,即可以打包,又可以压缩。同理,zip也是,能将一个文件夹和文件夹下所有内容压缩到一个文件中。
2、gzip和bzip2中,gzip可以将一个文件夹下的所有文件压缩,但是压缩后不能形成一个文件。bzip2根本就不能压缩文件夹。
3、tar命令不仅能压缩,还能打包