曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3856|回复: 0
打印 上一主题 下一主题

gzip/gunzip -- 生成/提取 gz 压缩包

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2012-4-10 18:55:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
gzip 是 GNU/Linux 平台上常用的压缩工具之一,它仅能对单个文件进行压缩,在遇到多个文件时,它会相应的生成多个压缩文件(.gz):
# gzip tmp1.txt tmp2.txt tmp3.txt
# ls *.gz
tmp1.txt.gz  tmp2.txt.gz  tmp3.txt.gz

解压缩则用 gunzip 命令:
# gunzip tmp1.txt.gz

gizp 的 -l 选项可以查看压缩包的详细情况:
# gzip -l temp.tar.gz
         compressed        uncompressed  ratio uncompressed_name
                262               20480  98.9% temp.tar
其中,compressed 表示压缩后的文件大小;uncompressed 表示未压缩时的文件大小;ratio 表示压缩比;uncompressed_name 表示压缩文件的文件名。

使用 -c 选项可以指定压缩数据输出到 stdout ,这样我们可以将其重定向到一个文件中:
# cat down.sh |gzip -c > down.sh.gz

gzip 经常是和 tar 一起使用的,比如我们经常将一个 tar 包压缩成一个 gz 文件,如:
# tar -czvvf my.tar.gz [Some Files]
上面的 -z 选项指定压缩 tar 包为 gz 格式。

或者
# tar -cavvf my.tar.gz [Some Files]

上面,-a 选项表示根据文件后缀名自动生成压缩格式,如上面的后缀名为 gz ,那么 tar 就会调用 gzip 来压缩其 tar 包文件。

当然,我们也可以将上面的步骤手动分为两步执行,首先是生成一个 tar 包,接着再显示调用 gzip 将其压缩。

在使用 tar 创建归档文件时,不能一次给出许多个要压缩的文件名作为参数,因为在命令行上对一次给出的参数个数是有限制的,因此,下面的脚本可以解决这个问题:
[Bash shell] 纯文本查看 复制代码
#!/bin/bash
FILE_LIST="file1 file2 file3 file4 file5"
for f in $FILE_LIST;
do
    tar -rvf my.tar $f
done

gzip my.tar

其中 tar 的 -r 选项表示“附加一个新的文件”。

tar 命令可以参考:http://www.groad.net/bbs/read.php?tid-6852.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 07:34 , Processed in 0.078645 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表