linux系统常见压缩命令
在linux环境中,压缩文件的扩展名基本是:*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2
*.Z compress程序压缩的文件 *.gz gzip程序压缩的文件 *.bz2 bzipa程序压缩的文件 *.tar tar程序打包的文件,并没有压缩过 *.tar.gz tar程序打包的文件,其中经过gzip的压缩 *.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩
注意:单纯的tar功能仅是打包而已,即时将很多文件集结成一个文件,事实上它并没有压缩功能。压缩文件只能对单一文件进行操作
一、compress
这个基本不用了,用到的时候再去了解了
二、gzip,zcat
gzip是应用最广泛的压缩命令。目前gzip可解开compress、zip、gzip等软件所压缩的文件。gzip所压缩的文件为*.gz的文件名。
gzip命令:gzip [-cdtv#] 文件名
zcat命令:zcat 文件名.gz
参数:-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-d:解压缩的参数
-t:可以用来检验一个压缩文件的一致性,看看文件有无错误
-v:可以显示出原文件/压缩文件的压缩比信息
-#:压缩等级,-1最快,但是压缩比最差,-9最慢,但压缩比最好。默认是-6.
1、压缩文件命令:gzip -v 文件名
注:这个命令可显示压缩比例,并且这种默认状态下原本文件对本压缩成.gz文件,源文件已经不存在了
2、查看压缩文件的命令:zcat *.gz
注:cat可读取纯文本文件,那么zcat可取纯文本文件的压缩文件
3、文件解压缩命令:gzip -d *.gz
注:会将原本的.gz删除,产生原来的index1.html文件。不要使用gunzip命令
4、最佳压缩比例和保留原文件命令:gzip -9 -c 文件名>文件名.gz
注:主要是-c和>的使用可保留原文件
三、bzip2,bzcat
bzip2可提供更好的压缩比
bzip2命令:bzip2 [-cdkzv#] 文件名
bzcat命令:bzcat 文件名.bz2
参数:-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-d:解压缩的参数
-k:保留原文件,而不会删除原始文件
-z:压缩的参数
-v:可以显示出原文件/压缩文件的压缩比信息
-#:压缩等级,-1最快,但是压缩比最差,-9最慢,但压缩比最好。默认是-6.
1、压缩文件:bzip2 -z 文件名
2、查看压缩文件:bzcat *.bz2
3、解压缩文件:bzip2 -d *.bz2
可使用bunzip2替换bzip -z
4、最佳压缩比例压缩文件并保留原文件:bzip2 -9 -c 文件名>文件名.bz2
5、压缩并保留原文件:bzip2 -z -k 文件名
四、tar打包
懒得打字了,书上拍个详细的
修正一点:-v是将文件的文件名/属性/权限都显示出来
1、简单记忆方式
(1)压缩命令:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
(2)查询 :tar -jtv -f filename.tar.bz2
(3)解压缩:tar -jxv -f filename.tar.bz2 -C 要解压缩在哪个目录目录(不加-C XX 会解压在当前目录)
注意:(1)-j可换成-z。(2)filename.tar.bz2是自己起的名字,tar不会主动创建文件名。如果不加参数[-j|-z]的话,文件名最好取为*.tar即可。如果加参数-j,代表是有bzip2支持,文件名取为*.tar.bz2。如果加参数-z,是gzip支持,取名为*.tar.gz。(3)-f filename是紧连一起的,由于参数顺序可变,故最好-f参数和其他分开(4)
“-f filename”独立使用。
2、-j和-z参数使用
(1)使用-z参数
tar -zpcv -f filename.tar.gz 文件或目录
(2)使用-j参数
tar -jpcv -f filename.tar.bz2 文件或目录
下面文件大小可看出用bzip2来压缩得到的压缩比更好,文件小
3、如何单独解开一个文件
(1)先查看到文件名
tar -jtv -f filename.tar.bz2|grep'关键字'
(2)将该文件解开
tar -jxv -f 打包文件.tar.bz2 待解开文件名
4、打包某目录,但不包含目录下的某些文件的做法
tar -jcv -f filename.tar.bz2 --exclude=文件名 --exclude=文件名 目录
五、压缩和分割文件
1、如何打包压缩一个文件并分割成多个文件
(1)tar -jpcv -f - 文件或目录|split -b 10k/m - 文件或目录.tar.bz2.
(2)tar -zpcv -f - 文件或目录|split -b 10k/m - 文件或目录.tar.gz.
实际上就是压缩命令和分割命令一句使用
2、合并文件
cat 文件或目录.tar.bz2.* > 文件或目录.tar.bz2
cat 文件或目录.tar.gz.* > 文件或目录.tar.gz
3、解压文件
tar -jxv -f 文件或目录.tar.bz2
tar -zxv -f 文件或目录.tar.gz
4、合并和解压一起用的话
cat 文件或目录.tar.bz2.*|tar -jxv
cat 文件或目录.tar.gz.*|tar -zxv