昔我往矣

Linux文件打包和压缩方式总结

2012年04月24日

Linux下有多种文件压缩方法,cpio,compress,gzip,bzip2,tar等,tar和cpio是打包命令,bzip2和gzip是压缩命令,常常的使用方法是先将文件或目录打包,然后将其压缩。

一、cpio,文件或目录打包
a)、含子目录打包

#find /usr/lib -print | cpio -o > /tmp/tmp.cpio

将/usr/lib目录下的文件和子目录打包成/tmp/tmp.cpio,若通过-o
选项来打包整个目录下的所有文件和子目录,常先利用find 目录名 -print 来找出所有文件与子目录的名称,通过管道“|”传给cpio打包。
b)、不含子目录的打包

# ls /usr/lib | cpio -o > /tmp/tmp.cpio

将/usr/lib目录下的文件(不含子目录下的文件)打包成一个文件库/tmp/tmp.cpio
c)、特定文件打包
可利用文本搜索命令grep与管道配合,可以排除或选择特定类型的文件传送给cpio打包。

# ls /usr/lib | grep '\.c$' | cpio -o > /tmp/tmp.cpio

找出/usr/lib目录下的以.c结尾的文件进行打包。
使用-i参数从cpio包中提取文件。

二、compress压缩
一般文本文件压缩率可达81%。
compress /tmp/tmp.cpio 将tmp.cpio压缩为/tmp/tmp.cpio.Z,自动添加.Z。
compress参数:

-d 解压缩。使用uncompress也是一样的效果。
-f 强制写入,覆盖已存在文件。
-v 在屏幕上显示程序执行信息。
-c 在屏幕上显示将压缩的数据。

二、tar,文件或目录打包
a)、文件和目录打包

tar -cvf tmp.tar /tmp/ 打包/tmp到当前目录。
tar -cvf tmp.tar 解压缩到当前目录。
tar -tvf tmp.tar 显示打包文件内的文件。
tar -zcvf tmp.tar.gz tmp用gzip压缩。
tar -jcvf tmp.tar.bz2 tmp用bzip2压缩。

tar和cpio相比:tar的速度比cpio慢,而且不能跨越两份存储媒体,但文件格式在所有unix系统中都能通用。
cpio 可以通过管道使其打包时进行文件选择和排除。并且可以跨越多份媒体,能备份特殊文件系统。

三、gzip/zcat,最常用的压缩方法

-c 压缩文件,不改变原文件,并把压缩后的文件从标准输出设备输出。
-d 解压缩文件。
-t 显示压缩文件是否正确
-r 递归处理。
-# 压缩效率。数值越大,压缩效率越高。数值介于1~9,默认是6。
--fast 参数效果和-1参数相同。
--best 参数效果和-9参数相同。
zcat、查看压缩包中的文件。

四、bzip2/bzcat/bunzip2
bzip2比gzip的压缩率还高,压缩文件以.bz2结尾。

-c 在屏幕上输出压缩与解压缩的结果。
-d 解压缩。
-z 强行执行压缩。
-f 在bzip2速出文件与现有文件同名的时候,指定覆盖现有文件。
-k 指定在bzip2压缩或解压缩时保留原始文件。
-s 程序执行时,降低内存使用量。
-t 测试.bz2压缩文件的完整性。

bzcat,显示压缩包中的内容。
bunzip2 解压缩工具。
bzip2recover 从bzip2中恢复文件,即使bzip2压缩包损坏时,可以恢复部分甚至全部文件。

当前暂无评论 »

添加新评论 »