Unix平台下的常用命令技巧之 tar包、压缩与解压缩
在
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 ftp://ftp.xxx.xxx
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
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
包
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1667488