Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3930855
  • 博文数量: 421
  • 博客积分: 685
  • 博客等级: 上将
  • 技术积分: 3670
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-18 14:20
文章分类

全部博文(421)

文章存档

2012年(5)

2011年(52)

2010年(83)

2009年(67)

2008年(65)

2007年(149)

分类:

2010-02-26 21:51:49

    在unix/linux系统中,提供了许多压缩工具,虽然方便,但也难免造成一些混乱。笔者通过一段时间的整理,将它们理一理顺,希望能够对大家有所帮助。

    首先,我们看一下下面这张“压缩包扩展名与压缩工具对应表”,大家通过这张表,就知道网上下载的压缩包,该用什么软件来解了。

 工具名  压缩包扩展名
 gzip/gunzip  .gz
 gzcat  .z
 compress/uncompress  .Z
 zip/unzip  .zip
 bzip2/bunzip2  .bz2
 lha  .lzh

 


   在Unix下常遇到一些解包、压包的问题。一般情况下将若干文件或文件夹打成tar包,是为了便于文件的传输和管理。例如,通过FTP从Unix平台下载目录结构较多的文件夹到Windows平台或另外一Unix平台,虽然文件夹不是太大,但由于每个文件很小,且非常多,每个文件都要进行文件头、尾检查校验。下载速度会非常慢。 如果打成tar包,传输就会快很多。存档的文件夹打成tar包也容易管理。

   值得注意的是:tar文件只是将文件或文件夹打包,并没有进行压缩。如果文本文件较多,对其压缩会节省很大的磁盘空间,传输将更快。压缩和解压缩方法可以参考下文给出的示例。

用法示例

下面我以Sun Solaris (其他unix如linux、aix大体相同)为例,就常见的一些问题向各位同仁作一下介绍,供大家在工作中参考。因水平有限,仅做抛砖引玉,欢迎大家积极补充。
 
 
 
1、如何解开.tgz或.tar.gz文件?
2、如何解开.z或.Z文件?
3、如何解开.tar.Z文件?
4、如何安装、卸载、列出rpm包信息?(linux常用)
5、如何使用tar命令测试、展开、生成tgz包?
6、如何解开和生成tar文件?
7、如何象在PC上的ARJ那样的分解打包软件?
8、在Unix下如何压缩文件?
9、如何解开和生成其他包如.jar文件?
10、抛砖引玉,待同仁补充
 
============================================================
1、如何才能解开.tgz或.tar.gz文件?
 
1)方法一:
gzip -d filename.tar.gz   或 gzip -d filename.tgz
tar -xvf filename.tar
2)方法二:
解压并列表:
gzip -dc filename.tgz | tar xvf -           #解.tgz文件
gzip -dc filename.tar.gz | tar xvf -               #.tar.gz 同 .tgz文件
只列表不生成文件:
gzip -dc filename.tgz | tar tvf -                        #解.tgz文件
gzip -dc filename.tar.gz | tar tvf -                 #.tar.gz 同 .tgz文件
gzip的其他使用方法参见gzip -h
============================================================
2、如何才能解开.z或.Z文件?
 
1)解.z 文件: gzcat filename.z
2)解.Z 文件:uncompress -c filename.Z
============================================================
3、如何解.tar.Z文件?
 
1)解压并列表:
zcat filename.tar.Z | tar xvf -            #解.tar.Z文件
uncompress -c tast.tar.Z | xvf -                     #uncompress -c 同 zcat
2)只列表不生成文件:
zcat filename.tar.Z | tar tvf -             #解.tar.Z文件
uncompress -c filename.tar.Z | tvf -        #uncompress -c 同 zcat
============================================================
4、如何安装、卸载、列出rpm包信息?(linux常用)
 
1)安装rpm包时显示进度
     例如:用-vh参数,如rpm -ivh ipchains-1.3.6-1.i386.rpm
2)直接通过ftp来安装rpm包
     例如:rpm -i
3)校验所有的rpm包,查找丢失的文件
例如:rpm –Va
4)查找一个文件属于哪个rpm包
     例如:rpm -qf /usr/bin/who
5)列出一个rpm包的描述信息
     例如:rpm -qpi mon-0.37j-1.i386.rpm
6)列出一个rpm包的文件信息
例如:rpm -qpl mon-0.37j-1.i386.rpm
7)列出并过滤已经安装的包
        例如:rpm –q |grep IBM
8)删除已安装的包
        例如:rpm –e 包名
9)其他rpm操作参见#rpm --help
============================================================
5、如何使用tar命令测试、展开、生成tgz包?
 
tar zvfx filename.tgz                       #在当前目录下展开这个包
tar zvft filename.tgz                              #只测试不展开
tar zvfx filename.tgz -C /new-dir              #展开后放到/new-dir目录下
tar zvfc filename.tgz /filename              #把/filename目录下所有的文件及子目录打包成filename.tgz
============================================================
6、如何解开和生成tar文件?
 
tar xvf filename.tar                              #当先目录解包
tar tvf filename.tar                              #只显示不生成文件
tar cvf filename.tar           #生成包
tar的参数很多,要仔细学习参见#tar -h
============================================================
7、如何象在PC上的ARJ那样的分解打包软件?
 
# split -b 100k big.file
   将big.file分解成若干500K的小文件 (名为xa, xb, xc, ...)
# split -l 500 big.file
   将big.file分解成每个500 lines的小文件
其它使用方法参见split –h
 
============================================================
8、在Unix下如何压缩文件?
 
在unix下压缩方法有多种,可以参见gzip、gunzip、zcat、compress等工具文档,也可以参见上面所述的一些方法。下面仅以compress命令示例:
 
例如:需要将/filename的文件打包并压缩,需要做以下步骤:
1)打包
tar cvf filename.tar ./dir
2)压缩
compress filename.tar                  #生成filename.tar.Z文件
如果还原回原来的目录结构
1)解压缩
uncompress filename.tar.Z
3)解tar包
tar xvf filename.tar
 
如果unix命令参数不熟悉,一般也可以通过ftp将压缩或打包文件传到PC上,利用Windows下的Winzip或rar等压缩工具解开。
 
==========================================================
9、如何解开和生成其他包如.jar文件?
 
在unix上生成和解开jar包和对tar包的操作差不多。
例如:
jar cvf filename.jar /dirname    #将/dirname 打成jar包
jar xvf filename.jar                                #解开jar包
jar tvf       filename.jar                                  #只列表不解开jar包

阅读(6673) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~