linux系统解压缩

目录 解压缩工具:compreee ,gzip,bzip2,xz,zip 归档工具:tar,cpio

压缩解压工具

compress/uncompress: 其对应的是以.Z结尾的压缩格式的文件(早期的解压缩工具) gzip/gunzip: 其对应的是以.gz结尾的压缩格式的文件 bzip2/bunzip2: 其对应的是以.bz2 结尾的压缩格式的文件 xz/unxz: 其对应的是以.xz结尾的压缩格式的文件 zip/unzip 其对应的是以.zip结尾的压缩格式的文件

解压缩

compreee

compress srcfile  //将源文件压缩成压缩包,源文件消失
compress -v srcfile 	//显示详细信息
compress -c srcfile > dstfile.Z //将源文件压缩成压缩包,源文件保留
compress -d dstfile.Z  或 uncompress dstfile.Z //将压缩包解压成源文件,压缩包消失
compress -d -c dstfile.Z > srcfile 或 zcat dstfile.Z > srcfile //将压缩包解压成源文件,压缩包保留

gzip

[OPTION]... FILE ...
	-# : 指明压缩比;1-9 默认为6,数字越大,压缩比越大;
	-d : decompress,解压缩,gunzip;
	-c : 将源文件压缩成压缩包,源文件保留;
	-r递归至目录中对每一个文件进行压缩。
	zcat /path/to/somefile.gz : 不显式解压缩的前提下查看文本文件内容
示例:
gzip srcfile //将源文件压缩成压缩包,源文件消失
gzip -c srcfile > dstfile.gz //将源文件压缩成压缩包,源文件保留
gzip -d dstfile.gz 或gunzip dstfile.gz //将压缩包解压成源文件,压缩包消失
gzip -d -c dstfile.gz > srcfile 或 zcat dstfile.gz > srcfile //将压缩包解压成源文件,压缩包保留
gzip -# srcfile //(#即1-9,表示压缩比,数字越大压缩比越高,默认为6)
gzip -c messages  >messages.gz  //将文件解压保留源文件
gzip -c -d messages.gz > messages  //将压缩包解压成源文件,并保留解压包
zcat messages.gz > messages //将压缩包解压成源文件,并保留解压包

bzip2

[OPTION]... FILE ...

-# : 指明压缩比;1-9 默认为6,数字越大,压缩比越大; -d : decompress,解压缩,unbzip2; -k : 压缩保留原文件; bzcat /path/to/somefile.bz2 : 不显式解压缩的前提下查看文本文件内容

	示例:
	bzip2 srcfile  //将源文件压缩成压缩包,源文件消失
	bzip2 -k srcfile // 将源文件压缩成压缩包,源文件保留且权限不变
	bzip2 -c srcfile > dstfile.bz2  //将源文件压缩成压缩包,源文件保留但权限根据umask值而改变
	bzip2 -d dstfile.bz2 或bunzip dstfile.bz2 //将压缩包解压成源文件,压缩包消失
	bzip2 -k -d dstfile.bz2 或bunzip -k dstfile.bz2 //将压缩包解压成源文件,压缩包保留且权限不变
	bzip2 -d -c dstfile.bz2 > srcfile 或 bunzip -c dstfile.bz2 > srcfile //将压缩包解压成源文件,压缩包保留但权限根据umask值而改变
	bzip2 -# srcfile //(#即1-9,表示压缩比,数字越大压缩比越高,默认为9)
	bzcat dstfile.bz2 //可以预览解压后的内容,配合> 也能解压,但权限会根据umask值而改变

xz

[OPTION]... FILE ...

-#:1-9,压缩比,默认为6 -k: keep, 保留原文件 -d:解压缩;相当于 unxz ; xzcat /path/to/somefile.xz : 不显式解压缩的前提下查看文本文件内容

zip

zip可以对多个文件压缩归档成单个文件
unzip :解包解压缩 

打包压缩 zip –r /testdir/sysconfig /etc/sysconfig/ 
zip -r dstfile.zip  srcfile 
zip -r config.zip /etc/passwd /etc/group /etc/shadow /etc/gshadow  //将多个文件压缩成一个文件config.zip
unzip config.zip //解压文件config.zip
解包解压缩 unzip
unzip sysconfig.zip   //解压文件
cat /var/log/messages | zip messages   
unzip -p message > message

归档工具

归档就是将多个文件打包为单个文件以便于管理,默认的归档不会执行压缩。
常用的工具有:tar,cpio

tar

tar,可以为某一特定文件创建档案(备份文件),也可以在档案中    改变文件,或者向档案加入新的文件。 
语法:tar(选项)(参数)

A或--catenate:新增文件到以存在的备份文件; B:设置区块大小; c或--create:建立新的备份文件; C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 d:记录文件的差别; x或--extract或--get:从备份文件中还原文件; t或--list:列出备份文件的内容; j:支持bzip2解压缩文件; J:支持xz解压缩文件; z或--gzip或--ungzip:通过gzip指令处理备份文件; Z或--compress或--uncompress:通过compress指令处理备份文件; f<备份文件>或--file=<备份文件>:指定备份文件; v或--verbose:显示指令执行过程; r:添加文件到已经压缩的文件; u:添加改变了和现有的文件到已经存在的压缩文件; v:显示操作过程; l:文件系统边界设置; k:保留原有文件不覆盖; m:保留文件不被覆盖; w:确认压缩文件的正确性; p或--same-permissions:用原来的文件权限还原文件; P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号; N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里; exclude=<范本样式>:排除符合范本样式的文件。

归档和压缩tar

-z : gzip
	后缀名:.tar.gz
	归档并压缩:tar -zcf
	展开归档:tar -zxf

-j : bzip2
	后缀名:.tar.bz2
	归档并压缩:tar -jcf
	展开归档:tar -jxf

-J : xz
	后缀名:.tar.xz
	归档并压缩:tar -Jcf
	展开归档:tar -Jxf
注意:展开归档可以直接使用tar -xf,而无需为其指定对应的压缩工具选项;

tar -tf mage.tar.xz  //预览压缩包的文件列表
tar -rf mage.tar /path/newfile  // 往tar包中增强文件(注意只能对tar包增加文件,而不能对压缩包增加)
tar -cf mage.tar filename1 filename2 [filenameN]  //将多个文件打包至mage.tar
tar -zcf mage.tar.gz filename1 filename2 [filenameN] // 将多个文件打包并用gzip压缩为mage.tar.gz
tar -jcf mage.tar.bz2 filename1 filename2 [filenameN]  //将多个文件打包并用bzip2压缩为mage.tar.bz2
tar -Jcf mage.tar.xz filename1 filename2 [filenameN] // 将多个文件打包并用xz压缩为mage.tar.xz
tar -xf mage.tar  //解压tar包的所有文件到当前目录(不分压缩类型)
 	tar -xf mage.tar.xz filename   //仅将压缩包中的其中一个文件filename 解压到当前目录
tar -zxf mage.tar.gz  //解压gz的压缩包到当前目录
tar -jxf mage.tar.bz2  //解压bzip2的压缩包到当前目录
tar -Jxf mage.tar.xz  //解压xz的压缩包到当前目录
 	tar -zxf mage.tar.gz -C /tmp  //解压gz的压缩包到/tmp目录
tar -zvxf mage.tar.gz  // 解压gz的压缩包到当前目录并显示详细过程
tar zcvf mage.tar.gz -T yasuolist.txt -X paichu.txt 
 // 	-T 指定需要打包并压缩的文件列表,每个文件路径一行
 // 	-X 指定要排除的文件列表,每个文件一行
tar --exclude scf/service -zcvf scf.tar.gz scf/*  // 备份文件夹内容是排除部分文件*/
tar -zcvpf log31.tar.gz log2014.log log2015.loglog2016.log   // 这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时。
tar -N "2012/11/13" -zcvf log17.tar.gz test  // 在文件夹当中,比某个日期新的文件才备份
其实最简单的使用 tar 就只要记忆底下的方式即可:
压 缩:tar -Jcv -f filename.tar.xz   //要被压缩的文件或目录名称
查 询:tar -Jtv -f filename.tar.xz
解压缩:tar -Jxv -f filename.tar.xz -C  / / 欲解压缩的目录

分割合并压缩包

压缩包分割
	split -b 2K -d etc.tgz 4  //将压缩包以2K为单位分割为4份
分割包合并
	cat 40* > mage.tgz  // 将以40开头命名的多个分割包合并为mage.tgz

cpio

功能:复制文件从或到归档
cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件
cpio [选项] > 文件名或者设备名 
cpio [选项] < 文件名或者设备名 
选项
	-o 将文件拷贝打包成文件或者将文件输出到设备上
	-i 解包,将打包文件解压或将设备上的备份还原到系统
	-t 预览,查看文件内容或者输出到设备上的文件内容 
	-v 显示打包过程中的文件名称。 
	-d 解包生成目录,在cpio还原时,自动的建立目录
	-c 一种较新的存储方式