欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LInux文件解压缩

程序员文章站 2022-05-15 10:58:49
...

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 一种较新的存储方式 

转载于:https://blog.51cto.com/12105235/2065753