gzip 是 GNU/Linux 平台上常用的压缩工具之一,它仅能对单个文件进行压缩,在遇到多个文件时,它会相应的生成多个压缩文件(.gz):# gzip tmp1.txt tmp2.txt tmp3.txt
# ls *.gz
tmp1.txt.gz tmp2.txt.gz tmp3.txt.gz
解压缩则用 gunzip 命令:
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 |