常见的压缩文件扩展名:
*.z compress程序压缩的文件
*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar tar程序打包的文件,并没有压缩过
*.tar.gz tar程序打包的文件,其中经过gzip的压缩
*.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩
一、Compress
compress这个压缩命令是非常老旧的一款,除非在非常旧的Unix机器上作业,否则可以不学习这个压缩命令。新版的linux基本是没有装这个软件的,要使用必须得先安装 “sudo apt install ncompress” 安装命令。
命令格式:
压缩的命令格式: compress [参数] 文件或目录
解压缩的命令格式: uncompress 文件.Z
参数:
-r:可以连同目录下的文件也同时给予压缩
-c:将压缩数据输出成为 standard output(输出到屏幕)
-v:可以显示出压缩后的文件信息及压缩过程中的一些文件名变化
范例一:将 /etc/man.config 复制到 /tmp ,并进行压缩
[root@www ~]# cd /tmp
[root@www tmp]# cp /etc/man.config .
[root@www tmp]# compress -v man.config
#此处会显示压缩的百分比
[root@www tmp]# ll /etc/man.config man.*
#此处将压缩后的文件和原文件进行比较
然后你发现一个问题,复制到/tmp 的man.config 不见了,因为被压缩成为 man.config.Z。也就是说,在默认情况下,被compress压缩的源文件会不见,而压缩文件会被创建起来,而且扩展名会是 *.Z。
范例二:将刚才的压缩文件解压缩
[root@www tmp]# uncompress man.config.Z
[root@www tmp]# ll man.*
#此处会显示从/etc 下复制过来的man.config原文件。
强调,compress很少人用了,因为这个程序无法解开 *.gz 的文件。
二、gzip,zcat
gzip可以说是应用最广的压缩命令了。目前gzip可以解开compress、zip、gzip等软件所压缩的文件。
命令语法:
gzip [参数] 文件名
zcat 文件名.gz #读取压缩文件的内容
参数:
-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理;
-d:解压缩的参数
-t:可以用来检验一个压缩文件的一致性,看看文件有无错误
-v:可以显示出源文件/压缩文件比等信息
-#:压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好默认是 -6。
范例一:将/etc/man.config 复制到/tmp中,并且以gzip压缩
[root@www ~]# cd /tmp
[root@www tmp]# cp /etc/man.config .
[root@www tmp]# gzip -v man.config
#压缩比内容省略
[root@www tmp]# ll /etc/tmp man.*
#复制文件,原文件,压缩文件的比较,注意,这里的被压缩的文件不会消失
#gizp压缩的文件字windows系统中,可被WinRAR这个软件解压缩。
三、bzip2,bzcat
bzip2是为了取代gzip并且提供更佳的压缩比而来的。bzip2真是不错的东西,这玩意的压缩比 竟然比gzip还要好。用法bzip2和gzip差不多
bzip2 [参数] 文件名
bzcat 文件名.bz2
参数:
-c:将压缩过程中产生的数据输出到屏幕上;
-d:解压缩的参数;
-k:保留原文件,不会删除原始文件;
-z:压缩参数
-v:显示压缩比等信息
-#:压缩比参数
范例一:将刚才的 /tmp/man.config 以bzip压缩
[root@www tmp]# bzip2 -z man.config
[root@www tmp]# ll man.*
#此时查看到文件夹下只有一个man.config.bz2文件,原复制文件会消失,使用-k参数就不会,可自行体验
[root@www tmp]# bzcat man.config.bz2
#读取压缩文件的内容
[root@www tmp]# bzip2 -d man.config.bz2
#解压缩
四、tar
前面讲的命令大多只能够对单个文件进行压缩,gzip和 bzip2虽然能对目录进行压缩,不过他们是将目录里的所有文件“分别”进行压缩的操作。而不能将好多数据压缩成一个文件。
tar命令就可以将多个目录或文件打包成一个大文件,同时还可以通过gzip和bzip2的支持,将该文件同时进行压缩。
命令格式:
tar [-j][-z] [cv] [-f 新建文件名] filename . . . #打包与压缩
tar [-j][-z] [tv] [-f 新建的文件名] #查看文件名
tar [-j][-z] [xv] [-f 新建的文件名] [-C 目录] #解压缩
参数:tar参数较多,只列出部分常用的,更多参数可自行man tar查询
-c:新建打包文件,可搭配-v 来查看过程中被打包的文件名。
-t:查看打包文件的内容含有哪些文件名,重点在查看文件名
-x:解打包或解压缩的功能, 可以搭配-C 在特定目录解开。
特别留意-c、-t、-x不能同时出现在一串命令行中
-j:通过bzip2的支持进行压缩/解压缩,此时文件名最好为 *.tar.bz2
-z:通过gzip的支持进行压缩 / 解压缩,此时文件名最好是 *.tar.gz
-v:在压缩/解压缩过程中,将正在处理的文件名显示出来;
-f filename:-f 后面接被处理的文件名,
-C 目录:这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数。
-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
范例一:备份/etc 目录
[root@www ~]# tar -zpcv -f /root/etc.tar.gz /etc
[root@www ~]# tar -jpcv -f /root/etc.tar.bz2 /etc
[root@www ~]# ll /root/etc*
-rw-r--r-- 1 root root 8740252 Nov 15 23:07 /root/etc.tar.bz2
-rw-r--r-- 1 root root 13020999 Nov 15 23:01 /root/etc.tar.gz
[root@www ~]# du -sm /etc #查看etc目录占用的容量
118 /etc
范例二:解压缩
[root@www ~]# tar -jxv -f /root/etc.tar.bz2 #解压到当前文件夹
[root@www ~]# tar -jxv -f /root/etc.tar.bz2 -C /tmp #解压到/tmp 文件夹下