1.常见压缩文件格式
*.tar tar 技术压缩的包
*.tar.gz tar 打包,但支持gzip技术解压缩
*.tar.bz2 tar打包,但支持 bzip2 技术解压缩
*.gz gzip 技术打包
*.bz2 bzip2技术打包
*.Z compress技术打包
linux 不会根据文件后缀来判定文件类型,不像win平台:exe就代表可执行文件,而linux下的可执行文件只要求文件有 x 权限
所以压缩文件也一样,具备上述这些格式的文件,也不一定是压缩文件,但适当的文件后缀是有必要的,简化我们的人的认知
注意:compress已经不再流行,被gzip取而代之。现在bzip2因为具备比gzip更优秀的压缩比,所以bzip2也是主流的解压缩技术
但是gzip和bzip2只适合对单个文件压缩,所以对目录或者多个文件打包,推荐使用 tar 打包
2.打包命令
********************* gzip 压缩与解压 **********************************
1.压缩
使用 gzip 命令压缩,默认情况下:压缩后源文件就不存在了
gzip man.config 会将当前目录man.config文件压缩成 man.config.gz 文件
gzip -v man.config 除了压缩,还会显示压缩比例等信息
gzip /etc/man.config 则将etc目录下man.config文件压缩
gzip * 则是将当前目录所有文件压缩
gzip a.txt b.txt 则是将当前目录下a、b这两个文本文档压缩
如果要保留原文件,则使用 -c 参数,比如
gzip -c man.config>man.config.gz 这样原文件会保留
gzip -c man.config>a.config.gz 这样原文件保留
注意自己命名压缩包名字时,可以不用 a.config.gz 也可以直接是 a.gz 或者更简单直接叫做 a
gzip -c man.config>a.gz 这样生成的压缩包叫做 a.gz
gzip -c man.config>a 这样生成的压缩包叫做 a ,虽然没有文件后缀,但也是压缩文件
2.解压
使用 gzip -d 解压,默认情况下,原gz文件被解压后也不存在了
gzip -d a.gz
gzip -d *
如果压缩包名字本来就是 a ,那就是这样 gzip -d a 直接压缩
如果你想保留原来的gz压缩包,解压后的文件重新生成一个,也使用参数 -c 比如
gzip -d -c a.config.gz > man.config 这样a.config.gz解压后变成了 man.config 文件
总结:
gzip 用于压缩和解压,可一次操作多个文件,或者使用通配符操作
不带任何参数:表示压缩文件
-d 表示解压文件
-c 表示解压或者压缩后,对新文件重命名
-v 表示输出压缩比信息
************************* bizp2 压缩与解压 *************************
bizp2 提供比 gzip 更好的压缩比,使用方法与gzip相同,参数也相同
注意文件格式是 bz2 比如
bzip2 -c man.config > a.config.bz2
总结:gzip 和 bzip2 都适合于解压和压缩单个文件,尽管也可以对目录操作,但不像winrar那种
是把一个目录以及里面的文件都压缩成一个大文件,而是对目录里面的每个文件单独压缩
所以要对目录操作,使用 tar,这就和windows平台使用 winrar 一样
而且winrar也支持把tar压缩后的文件解压开!
************************** tar 压缩与解压 ***************
man tar 查询到该命令的所有参数与使用方法,参数较多,注意以下几个常用参数
-j 表示tar包支持bzip2,所以带这个参数打包的话,文件可以命名为 *.tar.bz2 表示支持bzip2
-z 表示tar包直接gzip,可以命名为 *.tar.gz,如果这两个参数都不使用,建议命名为 *.tar
-v 表示打包或者解压过程中输出文件信息
-c 新建打包文件
-x 表示解压文件
-f 表示要处理的文件名
-t 表示查看tar包目录结构,一般你想拿到压缩包里面某一个文件时,可以先查看目录结构,再单独解压出来一个文件
1.打包
tar -jcv -f 文件名.tar.bz2 等待被打包的文件或者目录
tar -zcv -f 文件名.tar.gz 等待被打包的文件或者目录
tar -cv -f 文件名.tar 等待被打包的文件或者目录
这个参数 -f 可以和前面的参数合并,比如
tar -jcvf
tar -zcvf
tar -cvf
示例:
tar -jcvf test.tar.bz2 /etc/ 表示把 etc 目录打包
tar -zcvf test.tar.gz /etc/ 很明显使用 gzip 技术打包
tar -cvf test.tar /etc/ 直接使用tar技术打包
2.解压 -x表示解压文件
所以打解压命令只要把 打包 命令中的 c 换成 x 即可
tar -jxvf test.tar.bz2 直接在当前目录解压
tar -zxvf test.tar.gz 直接在当前目录解压
tar -xvf test.tar 直接在当前目录解压
============ 如果要解压到指定目录,使用 -C 参数,注意是大写 C ==============
tar -xvf test.tar -C b/ 表示解压到当前目录的 b 文件夹下
3.查看tar包目录结构 -t 表示查看
tar -jtvf test.tar.bz2
tar -ztvf test.tar.gz
tar -tvf test.tar
4.解压tar包中单个文件
====>打包比如 /etc 目录已经打成了tar包,命名为 test.tar
tar -cvf test.tar /etc
====>先找到你要解压的单个文件在tar包中的目录,比如你想解压出来 passwd 文件
tar -tvf test.tar | grep 'passwd'
这里使用 管道 | 来拼接两个命令,grep 'passwd' 本意是查找包含有 passwd 的文件(注意路径中包含也算)
结合 tar -tvf 来使用,就是在这个tar包中,查找包含 passwd 的文件
比如找打 /etc/passdw 这个文件,假设就是你想要解压的!
====>将tar包中 etc 目录下 passwd 文件解压出来:此处 etc/passwd 就是指在 test.tar 包中,passwd 的路径
tar -xvf test.tar etc/passwd