Linux中文件的压缩与解压缩

来源:互联网 发布:中国移动流量充值端口 编辑:程序博客网 时间:2024/06/07 16:47

ZIP

zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:

我们可以使用下列的命令压缩一个目录:

# zip -r archive_name.zip directory_to_compress

下面是如果解压一个zip文档:

# unzip archive_name.zip

TAR

Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:

# tar -cvf archive_name.tar directory_to_compress

如何解包:

# tar -xvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -xvf archive_name.tar -C /tmp/extract_here/

TAR.GZ

这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:

# tar -zcvf archive_name.tar.gz directory_to_compress

解压缩:

# tar -zxvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/

TAR.BZ2

这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。

# tar -jcvf archive_name.tar.bz2 directory_to_compress

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/





对许多用户来说,在DOS和Windows环境下利用工具软件ARJ、Winzip等,压缩或解压文件是比较容易的事。但是,在Linux中如何对文件进行压缩与解压呢?本文基于Red Hat 6.0,介绍了压缩与解压文件的几种方法与技巧:






命令: compress 

格式: compress 选项 文件列表 
功能: 用Lempel-ziv压缩方法来压缩文件或压缩标准输入 

选项: 

-r 递归操作,如果指定目录变元,则压缩该目录及其子目录中的所有文件。
-c 将压缩数据返回标准输出,而缺省情况下为压缩文件时将压缩数据返回文件。
-v 显示每个文件夹的压缩百分比。 

解释: 在用compress压缩文件时,将在原文件名之后加上扩展名.Z。如果不指定文件,则压缩标准输入,其结果返回标准输出。 

实例: 目的:压缩/mnt/lgx/a1.doc文件
命令:#compress /mnt/lgx/a1.doc
结果:压缩后生成a1.doc.Z文件。

命令: uncompress

格式: uncompress 选项 文件列表 
功能: 解压缩用compress 程序压缩过的文件 
选项: -c 它将压缩数据发往标准输出而不是改写旧的压缩文件 
解释: 如果不指定文件,则解压缩标准输入。缺省-c时,为解压缩。 
实例: 目的:解压缩/mnt/lgx/a1.doc.Z
命令:#uncompress /mnt/lgx/a1.doc.Z

命令: gzip

格式: gzip 选项 文件目录列表 
功能: 用Lempel-ziv编码压缩文件 

选项: 

-c 压缩结果写入标准输出,原文件保持不变。缺省时gzip将原文件压缩为.gz文件,并删除原文件。
-v 输出处理信息。
-d 解压缩指定文件。
-t 测试压缩文件的完整性。 

解释: 值得一提的是,gzip比compress压缩更加有效。 
实例: 目的:压缩/mnt/lgx/a1.doc
命令:#gzip -v /mnt/lgx/a1.doc
结果:产生a1.doc.gz的压缩文件

命令: gunzip 

格式: gunzip 选项 文件列表 
功能: 解压缩用gzip命令(以及compress和zip命令)压缩过的文件 

选项: 

-c 将输出写入标准输出,原文件保持不变。缺省时,gunzip将压缩文件变成解压缩文件。
-l 列出压缩文件中的文件而不解压缩。
-r 递归解压缩,深入目录结构中,解压缩命令行变元所指定目录中的所有子目录内的文件。 

实例: 目的:解压缩/mnt/lgx/a1.doc.gz
命令:#gunzip /mnt/lgx/a1.doc.gz

命令: tar 

格式: tar 选项 文件目录列表 
功能: 对文件目录进行打包备份 

选项: 

-c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
-O 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

实例1: 目的:用tar打包一个目录下的文件
命令:#tar -cvf /mnt/lgx/a1.doc
结果:产生一个以.tar为扩展名的打包文件

实例2: 目的:用tar解开打包文件
命令:#tar -xvf /mnt/lgx/a1.doc.tar
附加说明:在通常情况下,tar打包与gzip(压缩)经常联合使用,效果更好。方法是:
首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc (产生a1.doc.tar文件)
然后用gzip压缩a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (产生a1.doc.tar.gz文件)

实例3: 目的:解压a1.doc.tar.gz文件
方法1:
#gzip -dc /mnt/lgx/a1.doc.tar.gz (产生a1.doc.tar文件)
#tar -xvf /mnt/lgx/a1.doc.tar (产生a1.doc文件)
这两次命令也可使用管道功能,把两个命令合二为一:
#gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
方法2:使用tar提供的自动调用gzip解压缩功能
#tar -xzvf /mnt/lgx/a1.doc.tar.gz

  经过tar打包后,也可用compress命令压缩(注:gzip比compress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用“uncompress 文件名”格式解压,然后用“tar -xvf 文件名”解包。也可直接调用“tar -Zxvf 文件名”解包。