文件压缩归档

文件压缩有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。LINUX上有很多压缩解压缩软件,linux上目前最常用的压缩软件时gzip和bzip2,compress已经过时了,通常这些命令通常只能针对一个文件来压缩解压缩,如果要对目录和多个文件进行压缩,就需要用到归档工具来解决。
常见压缩命令:compress、gzip、bzip2、xz、zip
常用归档命令:tar、cpio
不同的压缩解压缩软件的压缩技术并不相同,这就造成了软件之间不能彼此解压缩或者压缩文件,所以需要根据被压缩文件的扩展名判断该文件使用的压缩软件。

常见压缩文件扩展名对应的命令:

扩展名 压缩命令 解压命令
*.z commpress uncompress
*.gz gzip gunzip
*.bz2 bzip2 bunzip2
*.xz xz unxz
*.zip zip unzip
*.tar.gz/*.tgz tar-gzip tar-gunzip
*.tar.bz2/*.tbz2 tar-bzip2 tar-bunzip2
*.tar.xz/*.txz tar-xz tar-unxz
*.tar(归档) tar tar
*.cpio(归档) cpio cpio

常用压缩软件

cmpress|uncompress|zcat

compress [-dfvcVr] [-b maxbits] [file ...]
-d:  解压缩,相当于uncompress
-c:  结果输出至标准输出, 不删除原文件
-v:  显示详情
 uncompress 解压缩
 zcat file.Z >file 不解压缩查看文件内容
例如:
uncompress FileName.Z (解压缩)
compress FileName(压缩)

gzip|gunzip|zcat

gzip [OPTION]... FILE ...
-d:  解压缩,相当于gunzip
-c:  将压缩或解压缩的结果输出至标准输出
-# :1-9 ,指定压缩比,值越大压缩比越大
zcat 不解压缩查看文件内容
例如:
gunzip FileName.gz|gzip -d FileName.gz(解压缩)
gzip FileName(压缩)

bzip2|bunzip2|bzcat

-d:  解压缩,相当于bunzip2
-# :1-9 ,指定压缩比,值越大压缩比越大
-k keep 保留源文件
bzcat:不解压缩查看文件内容
例如:
bzip2 -d FileName.bz2|bunzip2 FileName.bz2(解压缩)
bzip2 -z FileName(压缩)

xz/unxz/xzcat

-d:  解压缩,相当于gunzip
-# :1-9 ,指定压缩比,值越大压缩比越大
-k keep 保留源文件
xzcat:不解压缩查看文件内容

zip/unzip

-A   调整可执行的自动解压缩文件。
-b<工作目录>   指定暂时存放文件的目录。
-c   替每个被压缩的文件加上注释。
-d   从压缩文件内删除指定的文件。
-D   压缩文件内不建立目录名称。
-f   更新或者追加文件内容到压缩文件
-F   尝试修复已损坏的压缩文件。
-g   将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h   在线帮助。
-i<范本样式>   只压缩符合条件的文件。
-j   只保存文件名称及其内容,而不存放任何目录名称。
-J   删除压缩文件前面不必要的数据。
-k   使 用MS-DOS兼容格 式的文件名称。
-l   压缩文件时,把LF字符 置换成LF+CR字 符。
-ll   压缩文件时,把LF+CR字 符置换成LF字符。
-L   显示版权信息。
-m   将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串>   不压缩具有特定字尾字符串的文件。
-o   将压缩文件的更改时间设成和该文件相同(参照压缩包内最新文件)
-q   不显示指令执行过程。
-r   递归处理,将指定目录下的所有文件和子目录一并处理。
-S   包含系统和隐藏文件。
-t<日期时间>把压缩文件的日期设成指定的日期。
-T   检查备份文件内的每个文件是否正确无误。
-u   更换较新的文件到压缩文件内。
-v   显 示指令执行过程或显示版本信息。
-V   保 存VMS操作系统的文件属性。
-w   在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式> 压 缩时排除符合条件的文件。
-X   不保存额外的文件属性。
-y   直接保存符号连接,而非该连接所指向的文件
-z   在压缩文件加上注释。
-$   保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率>   压 缩效率是一个介于1-9的数值。
 例如:
unzip test.zip(解压缩)
zip test1.zip test.MYI(压缩)

常用归档工具

tar归档工具

tar [主选项+辅选项] 文件或者目录(主选项是必须要有的,辅选项可以选用)
主选项:(同一条命令只能使用一个主选项)
c 创建新的档案文件。备份一个目录或是一些文件,相当于打包。
x 从档案文件中释放文件。相当于拆包。
t 列出档案文件的内容,查看已经备份了哪些文件。
辅助选项:
-z :调用gzip命令压缩 
-j :调用bzip2命令压缩
-v :压缩的过程中显示文件!这个常用
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!
-p :使用原文件的原来属性(属性不会依据使用者而变)
--exclude FILE:在压缩的过程中,不要将 FILE 打包!

示例:

tar -tf aaa.tar.gz 在不解压的情况下查看压缩包的内容
压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个
gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个
bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成
一个umcompress压缩过的包,命名为jpg.tar.Z
解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压
tar.bz2tar –xZvf file.tar.Z //解压tar.Z

cpio归档工具
cpio可将文件或目录从文件库获取出来或将散列文件拷贝到文件库。是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio” 或者“.tar” 结尾的文件。
cpio 共有三种基本模式:
-o即copy-out 模式,将一组文件copy到一个文件库。
-i 即copy-in 模式,读取文件库,并将其展开在当前目录。
-p 能从某个目录读取所有文件(包括子目录到另一个目录),且不以归档的方式存放。
-o常用标准输入设备读取要copy 的文件名称,并将copy成的归档文件通过标准输出设备输出,一般利用输入/输出重定向或管道的原理,达到真正复制的功能。

cpio [ 选项] >  文件名或者设备名
cpio [ 选项] <  文件名或者设备名
选项
-o  将文件拷贝打包成文件或者将文件输出到设备上
-i  解包,将打包文件解压或将设备上的备份还原到系统
-t  预览,查看文件内容或者输出到设备上的文件内容
-v  显示打包过程中的文件名称。
-d  解包生成目录,在cpio 还原时,自动的建立目录
-c  一种较新的存储方式

示例:

**利用cpio备份: **
find temo –print | cpio –ocdv > /dev/rfd0135ds18
find . |cpio -co > ../initrd(将temp目录下的文件备份到软盘上)
ls |cpio –o >/usr/backup(将当前目录下的所有文件复制成backup archive file)
ls *.c | cpio –o>backup(复制工作目录中的所有的c程序)
ls| cpio –p /usr/linfs/tempdir (复制当前工作目录下的文件到/usr/linfs/tempdir 目录,不生成archive file)
利用cpio 复原:
cpio –icdv < /dev/rfd0135ds18 (将软盘中的文件复原。)
cpio -i < ../initrd(将上层目录的initrd文件释放到当前文件夹)
cpio –icdv "*stat.wp" < /dev/rfd0135ds18 (仅复原*stat.wp的文件 )
cpio –i

你可能感兴趣的:(文件压缩归档)