首页 > 代码库 > linux下的文件压缩与打包---compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball

linux下的文件压缩与打包---compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball

常见的Linux压缩文件扩展名

*.Z            compress压缩的文件(已经被gzip替代)

*.gz          gzip程序压缩的文件

*.bz2        bzip2程序压缩的文件(比gzip效果好,但只能针对一个文件来压缩)

*.tar          tar程序打包的数据,没有压缩(使用tar打包成一个文件,可以解决bzip2不能压缩多个文件的问题)

*.tar.gz     tar程序打包的数据,并经过gzip的压缩

*.tar.bz2   tar程序打包的数据,并经过bzip2的压缩


compress的使用

ubuntu安装命令:

apt-get install compress


操作命令:

执行命令后会替代目标文件

压缩        compress [-rcv]  文件名或目录名

解压缩    uncompress  文件名.z


执行命令不替代目标文件

压缩       compress -c  目标文件名  >  新文件名

主要参数:

-r: 连通目录下的文件一并压缩

-c: 将压缩数据输出到屏幕(不进行实际压缩)

-v:  将压缩后的文件信息和文件变化输出(不进行实际压缩)


gzip,zcat的使用

gzip可以解开compress,zip和gzip压缩的文件,压缩文件扩展名为gz

操作命令:

gzip  [-cdtv#]  文件名或目录名

zcat  文件名.gz     不用解压缩在屏幕上输出压缩文件的内容


执行命令不替代目标文件

gzip  -c   目标文件名  >  新文件名

gizp  -d   目标文件名  >  新文件名

主要参数:

-c:  将压缩的数据输出到屏幕

-d:  解压缩的参数

-t:   用来校验一个压缩文件的一致性,看有无错误

-v:  显示原文件/压缩文件的压缩比信息

-#: 压缩等级,-1最快,-9最慢,默认-6,快慢速度和压缩比成反比


gunzip也是解压缩命令


bzip2,bzcat的使用

操作命令:

bzip2  [-cdkzv#]  文件名

bzcat  文件名.bz2

主要参数:

-c:  将压缩产生的数据输出到屏幕上

-d:  解压缩参数

-k:  保留原文件,不会删除原始文件

-z:   压缩的参数

-v:   显示原文件/压缩文件的压缩比信息

-v:   与gzip相同


bunzip2命令也可以用来解压缩


打包命令:tar

操作命令:

打包与压缩:tar  [-j|-z]  [cv]  [-f  文件名]  

查看文件:    tar  [-j|-z]  [tv]   [-f  文件名]

解压缩:        tar  [-j|-z]  [xv]  [-f  文件名]  [-c  目录]


主要参数:

-c:  建立打包文件,可搭配-v来查看过程中被打包的文件名

-t:   查看打包文件内含有哪些文件

-x:  解压缩或解打包功能,可以配合-C(大写)在特定目录解开,-c,-t,-x不能同时出现在一串命令中

-j:   通过bzip2的支持进行压缩/解压缩:此文件名最好为*.tar.bz2

-z:   通过gzip的支持进行压缩/解压缩:此文件名最好为*.tar.gz

-v:   在压缩/解压缩的过程中,将正在处理的文件名显示出来

-f  filename:  -f后面要立刻接要被处理的文件名

-C  目录:这个选项用在解压缩,在特定目录解压缩可以使用这个选项


-p:(小写p)保留备份数据的原本权限与属性,通常用于备份重要的配置文件,很重要的参数

-P:(大写P)保留绝对路径,允许备份数据中含有根目录存在

--exclude=FILE:在压缩的过程中,不要将FILE打包


技巧:

解压缩包内单一文件的方法

tar  -jtv  -f   目录/文件名.tar.bz2  |  grep  ‘查找的字符串’


grep是搜索关键词的功能,找到目标目录后


tar  -jxv  -f  打包文件名.tar.bz2   解开目标目录


打包某目录,但不含该目录下某些文件的方法

tar  -jcv  -f  /root/etc.tar.bz2  --exclude=/root/etc*  >  --exclude=/root/etc.tar.bz2  /etc  /root


仅备份比某个时刻还要新的档案

--newer选项和--newer-mtime

--newer表示后面含有mtime 与 ctime

--newer-mtime则仅是mtime


使用find  /etc -newer  /etc/passwd找出比较新的文件

找一个目标文件的时间

tar  -jcv  -f  /root/etc.tar.bz2  >  --newer-mtime="2011/10/3"   /etc/*


tarfile,tarball

tarfile

仅仅使用tar指令打包没有经过压缩的文件

tarball

使用tar指令打包并经过压缩的文件


使用tar命令被分到磁带机/dev/st0的方法

tar  -cv  -f  /dev/st0  /home/root/etc


利用管线命令与数据流备份

就是边打包变解压缩到目标目录

cd  /tmp

tar  -cvf  -  /etc|tar  -xvf -

即:将/etc底下的资料直接copy到目录所在的路径即/tmp底下

linux下的文件压缩与打包---compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball