shell——压缩&解压缩

来源:互联网 发布:纬创软件 上海 编辑:程序博客网 时间:2024/06/06 03:26

     本例编写名为smartzip的脚本,实现自动解压zip、gzip、bzip2类型的压缩文件,同时介绍如何压缩这几个类型的文件

1、smartzip.sh,此处特别注意代码之间知否有空格,否则会提示有符号错误。

ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
    unzip "$1" ;;
"$1: gzip compressed"*)
  gunzip "$1" ;;
"$1: bzip2 compressed"*)
  bunzip2 "$1" ;;
*)  
    echo "File $1 can not be uncompressed with smartzip" ;;
esac


2、执行方式: smartzip test.zip,即可解压到当前目录


3、压缩方式ZIP

实例:压缩服务器上当前目录的内容为xxx.zip文件

zip -r xxx.zip ./*

压缩服务器上当前目录的某个文件AAA为xxx.zip文件

zip -r xxx.zip AAA

解压zip文件到当前目录

unzip filename.zip

另外:

zip -d myfile.zip smart.txt ——删除压缩文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt ——向压缩文件中myfile.zip中添加rpm_info.txt文件


4、压缩方式GZIP

*递归地压缩目录test,或者文件test,

这样,所有test下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。

$gzip -r test

*递归地解压目录test,或者文件test,

这样,test里面的所有*.gz文件还原成原来的文件。

$gzip -d -r test 

或$gunzip -r test


*将当前目录下的所有文件压缩: 

$gzip * 

这样所有非目录的文件都会被压缩,注意这里原来的文件都被替换成为压缩之后的文件了。 


*将当前目录下的所有压缩文件解压: 

$gzip -d * 

或$gunzip * 

这样会将目录下面所有压缩的文件解压。 


*解压当前目录下的所有压缩文件,并显示详细的解压信息: 

$gzip -d -v * 

或$gzip -dv * 

或$gunzip -v * 

这样-v选项显示了更多的信息。同理gzip的-v选项会显示压缩的时候的更为详细的信息。

*详细显示当前目录下面的压缩文件的信息: 

$gzip -l * 

输入之后,输出如下: 

gzip: dirnew is a directory -- ignored 

gzip: dirold is a directory -- ignored 

compressed        uncompressed  ratio uncompressed_name 

178                 215 31.6% testRename.c 

2699                6521 59.1% testRename 

2877                6736 57.7% (totals) 

这里只是显示压缩文档的信息,并不显示。 


*详细显示某个压缩文件的信息: 

$gzip -l testRename.c.gz 

输入之后,输出如下: 

compressed        uncompressed  ratio uncompressed_name 

       178                 215  31.6% testRename.c 


*压缩一个tar备份文档: 

$gzip dirnew.tar 

执行之后,会将dirnew.tar变成dirnew.tar.gz,压缩了。


gzip [选项] 压缩(解压缩)的文档名 

【功能】

标准的GNU/UNIX压缩工具, 取代了比较差的compress命令. 相应的解压命令是gunzip, 与gzip -d是等价的. 

【描述】

各选项的含义: 

-c 将输出写到标准输出上,并保留原有文档。 

-d 将压缩文档解压。 

-l 对每个压缩文档,显示下列字段: 

       压缩文档的大小 

       未压缩文档的大小 

       压缩比 

       未压缩文档的名字 

-r 递归式地查找指定目录并压缩其中的任何文档或是解压缩。 

-t 测试,检查压缩文档是否完整。 

-v 对每一个压缩和解压的文档,显示文档名和压缩比。 

-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。


5、压缩方式bzip2

要使用 bzip2 来压缩文件,在 shell 提示下键入以下命令:

bzip2 filename

文件即会被压缩并被保存为 filename.bz2


要扩展压缩的文件,键入以下命令:

bunzip2 filename.bz2

filename.bz2 文件会被删除,而继之以filename显示



0 0
原创粉丝点击