压缩、解压缩及归档工具
缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的"词典"文件,并用一个代码表示,比如在文件里有几处有一个相同的词"中华人民共和国"用一个代码表示并写入"词典"文件,这样就可以达到缩小文件的目的。 ———–百度百科
压缩就是拿时间换空间。 ————————- 马哥
命令行工具
compress/uncompress: .Z
gzip/gunzip: .gz
bzip2/bunzip2: .bz2
xz/unxz: .xz
zip/unzip
tar
cpio
compress/uncompress
语法: compress [-选项] [-b maxbits] [file …]
-d: 解压缩,相当于uncompress
-c: 结果输出至标准输出,不删除原文件
-v: 显示详情
uncompress 解压缩
zcat file.Z >file
现在已经基本不用了
gzip / gunzip
语法: gzip [OPTION]… FILE …
-d: 解压缩,相当于gunzip
-c: 将压缩或解压缩的结果输出至标准输出
– -#:1-9,指定压缩比,值越大压缩比越大,默认为6
zcat:不显式解压缩的前提下查看文本文件内容
实例:
压缩: gzip textuser.test 直接压缩文件,会自动生成与文件名相同的.gz文件 gzip -c messages >messages.gz 表示用-c输出重定向到指定文件名中 解压 gunzip textuser.test.gz 表示直接解压文件 gzip -c -d messages.gz > messages 解压并重定向 zcat messages.gz > messages 解压
bzip2/bunzip2/bzcat
语法: bzip2 [选项]… FILE …
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为6
bzcat:不显式解压缩的前提下查看文本文件内容
xz/unxz/xzcat
语法: xz [选项]… FILE …
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为6
xzcat: 不显式解压缩的前提下查看文本文件内容
zip/unzip
打包压缩
zip –r sysconfig sysconfig/
解包解压缩
unzip sysconfig.zip
cat /var/log/messages | zip message -unzip -p message > message
注意:zip/unzip是可以压缩整个目录的 (要加 -r)不过解压缩后不会保留文件原来的属性信息!
tar
功能:打包文件,可以打包并且压缩
语法:
创建归档 -c
展开归档 -x
不展开归档去查看归档中的文件列表 -t
打包与压缩 tar [-j -z -J] [c v] [-f 新建的文件名] 要打包的文件或目录
解压缩 tar [-j -z -J] [x v] [-f 要解压缩的文件名] [-C] 指明特定的解压目录
查看文件名 tar [-j -z -J] [t v] [-f 要解压缩的文件名]
选项:
-c :新建打包文件,可搭配-v来查看打包过程
-t :查看打包文件的内容
-j :通过bzip2支持进行压缩或者解压 .bz2
-z :通过gzip支持进行压缩或解压 .gz
-J :通过xz支持进行压缩或解压 .xz
-v :查看过程
-Z或–compress或–uncompress:通过compress指令处理备份文件;
-f<备份文件>或–file=<备份文件>:指定压缩后的文件名;
-C <目录> :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-N <日期格式> 或 –newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
-p或–same-permissions:用原来的文件权限还原文件;
将文件全部打包成tar包:
tar -c -f /PATH/TO/SOMEFILE.tar FILE…
tar cf /PATH/TO/SOMEFILE.tar FILE…
仅打包,不压缩!tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
查阅上述tar包内有哪些文件:
tar -ztvf log.tar.gz
将tar包解压缩:
tar -zxvf /opt/soft/test/log.tar.gz 在预设的情况下,我们可以将压缩档在任何地方
只将tar内的部分文件解压出来:
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
可以透过tar -ztvf来查阅 tar 包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件!
文件备份下来,并且保存其权限:
tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
在文件夹当中,比某个日期新的文件才备份:
tar -N "2012/11/13" -zcvf log17.tar.gz test
注意tar打包压缩后文件不会保留原来的属组属主,-p也不行,谁解压,解压后的文件就属于谁!
cpio
复制 从或到文件
功能:cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。
用法:
cpio [选项] > 文件名或者设备名
cpio [选项] < 文件名或者设备名
选项
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 解包,将打包文件解压或将设备上的备份还原到系统
-t 预览,查看文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称。
-d 解包生成目录,在cpio还原时,自动的建立目录
-c 一种较新的存储方式
示例
将etc目录备份:
find ./etc -print |cpio -ov >etc.cpio
内容预览
cpio –tv < etc.cpio
要解包文件
cpio –iv <etc.cpio
cpio –idv < etc.cpio
原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/37278