在Unix下常遇到一些解包、压包的问题。一般情况下将若干文件或文件夹打成tar包,是为了便于文件的传输和管理。例如,通过FTP从Unix平台下载目录结构较多的文件夹到Windows平台或另外一Unix平台,虽然文件夹不是太大,但由于每个文件很小,且非常多,每个文件都要进行文件头、尾检查校验。下载速度会非常慢。如果打成tar包,传输就会快很多。存档的文件夹打成tar包也容易管理。
值得注意的是:tar文件只是将文件或文件夹打包,并没有进行压缩。如果文本文件较多,对其压缩会节省很大的磁盘空间,传输将更快。压缩和解压缩方法可以参考下文给出的示例。
下面我以Sun Solaris 5.8(其他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 <file or dir list> #生成包
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包