linux之gzip,bzip2命令

常见的文件类型为 【.tar.gz】 【.tar.bz2】 【 .tgz】 【.tar.zip】
gzip命令【.tar.gz】(tar命令 → gzip命令)
tar 与 gzip命令结合可以使用实现文件 【打包和压缩】
在tar命令中有一个选项-z可以调用gzip,从而可以方便的实现压缩和解压缩的功能
1)tar只负责打包文件,但不压缩
2)用gzip压缩tar打包的的文件,其扩展名一般用xxx.tar.gz
(用tar打包,用gzip压缩的文件 eg: tar -zcvf 或 -zxvf)
gzip/gunzip命令(以下内容一般用tar -z来替代)
1.功能说明
将一般的文件进行压缩或者解压。压缩文件预设的扩展名为".gz",其实gunzip就是gzip的硬链接,
因此无论是压缩或者解压缩都可以通过gzip来实现.
***gzip只能对文件进行压缩,不能压缩目录,即使指定压缩的目录,也只能压缩目录内的所有文件。

其格式如下:
gzip [选项] 压缩 (解压缩) 的文档名

选项 说明
-d 对压缩的文件进行解压
-r 递归式压缩指定目录以及子目录下的所有文件
-t 检查压缩文档的完整性
-v 对于每个压缩和解压缩的文档,显示相应的文件名和压缩比
-l 显示压缩文件的压缩信息。显示字段为压缩文档大小,未压缩文档大小,
压缩比和未压缩文档名称
-num 用指定的数字num配置压缩比,"-1"或"-fast"表示最低压缩比,
“-9"或”-best"表示最高压缩比。系统默认压缩比为6。

举例(对比两种压缩文件):
1)用tar方式压缩到/tmp/tartest文件夹中
$>tar -zcvf etc2.tar.gz /etc -C /tmp/tartest/

2)gzip方式压缩到/tmp/tartest文件夹中
1)首先将etc目录下的所有文件以及子目录进行压缩,拷贝到/tmp/tartest目录下,
$> cp -r /etc /tmp/tartest
$> ls

[[email protected] tartest]$ ls
etc etc1.tar.gz

$> zip -r etc2.zip etc (将etc压缩成etc2.zip)
$> ll
drwxr-xr-x. 119 crx crx 12288 Oct 29 10:19 etc
-rw-rw-r–. 1 crx crx 5598203 Oct 29 10:37 etc1.tar.gz
-rw-rw-r–. 1 crx crx 41673210 Oct 29 10:42 etc2.zip

2)然后对etc2.zip文件进行gzip压缩(etc2.zip–>etc2.zip.gz),设置gzip的压缩级别为9
$> gzip -9v etc2.zip
etc2.zip: 3.9% – replaced with etc2.zip.gz

$> ll
drwxr-xr-x. 119 crx crx 12288 Oct 29 10:19 etc
-rw-rw-r–. 1 crx crx 5598203 Oct 29 10:37 etc1.tar.gz
-rw-rw-r–. 1 crx crx 40065758 Oct 29 10:42 etc2.zip.gz

设置gzip的压缩级别为1
$>zip -r etc3.zip etc
$> gzip -1v etc3.zip

$> ll
drwxr-xr-x. 119 crx crx 12288 Oct 29 10:19 etc
-rw-rw-r–. 1 crx crx 5598203 Oct 29 10:37 etc1.tar.gz
-rw-rw-r–. 1 crx crx 40065758 Oct 29 10:42 etc2.zip.gz #压缩级别为9
-rw-rw-r–. 1 crx crx 40151733 Oct 29 10:46 etc3.zip.gz #压缩级别为1

3)查看上述压缩级别1和9文件的压缩信息
$> gzip -l etc2.zip.gz
$> gzip -l etc3.zip.gz

4)解压上述etc.zip.gz文件到当前目录( etc2.zip.gz → etc2.zip )
$> gzip -d etc2.zip.gz

$>ll
drwxr-xr-x. 119 crx crx 12288 Oct 29 10:19 etc
-rw-rw-r–. 1 crx crx 5598203 Oct 29 10:37 etc1.tar.gz
-rw-rw-r–. 1 crx crx 41673210 Oct 29 10:42 etc2.zip
-rw-rw-r–. 1 crx crx 40151733 Oct 29 10:46 etc3.zip.gz

"gzip -d "等价于"gunzip"命令
$> gunzip etc3.zip.gz
$> ll
drwxr-xr-x. 119 crx crx 12288 Oct 29 10:19 etc
-rw-rw-r–. 1 crx crx 5598203 Oct 29 10:37 etc1.tar.gz
-rw-rw-r–. 1 crx crx 41673210 Oct 29 10:42 etc2.zip #"gzip -d "
-rw-rw-r–. 1 crx crx 41673210 Oct 29 10:46 etc3.zip #“gunzip”
例:
linux之gzip,bzip2命令
bzip2/bunzip2命令
tar与bzip2命令结合可以使用实现文件 打包和压缩(用法和gzip一样)
1)tar只负责打包文件,但不压缩
2)用bzip2压缩tar打包后的文件,其扩展名一般用xxx.tar.bz2
(用tar打包,用bz2压缩的文件 eg: tar -jcvf 或 -jxvf)
3)在tar命令中有一个选项-j可以调用bzip2,从而可以方便的实现压缩和解压缩的功能
tar使用bzip2命令格式如下:
#压缩文件
tar -jcvf 打包文件名称.tar.bz2 被压缩的文件/目录

#解压缩文件
tar -jxvf 打包文件名称.tar.bz2
注意:同样适用于 -C 解压缩到指定目录,要解压缩的目录必须存在

调用bzip2/bunzip2命令
1.功能说明
对文件进行压缩与解压缩。此命令类似于“gzip/gunzip"命令,只能对文件进行压缩,
对于目录只能压缩目录下的所有文件,压缩完成后,在目录下生成以".bz2"为后缀的压缩包,
bunzip2其实是bzip2的符号链接,即软链接,因此压缩、解压都可以通过bzip2实现,
其格式如下:

选项 说明
-d 执行解压缩,此时选项后在跟要解压缩的文件
-v 压缩或解压文件时,显示详细信息
-k bzip2在压缩或解压缩后,会删除原始文件,若要保留原始文件,可使用此选项
-f bzip2在压缩或解压的缩时, 若输出文件与现有文件同名,预设不会覆盖现有文件。
若要覆盖,就要使用此选项
-t 测试".bz2"压缩文件的完整性
-压缩级别 压缩级别可以从1~9中选取,数字越大,压缩率越高

查询etc.zip (zip -r etc.zip etc)
$> ls
etc.zip

将tmp目录下etc.zip进行压缩,设置压缩率为最高,同时在压缩完毕后不删除原始文件,
显示压缩过程的详细信息.
[[email protected] tmp]$ bzip2 -9vk etc.zip
etc.zip: 1.062:1, 7.534 bits/byte, 5.83% saved, 41673146 in, 39245501 out.
[[email protected] tmp]$ ls
etc.zip
etc.zip.bz2

复制一份,压缩后删除原始文件
$>cp etc2.zip etc5.zip
$>bzip2 -9v etc5.zip

将以上文档进行解压缩,先删除原etc.zip
[[email protected] tmp]$ rm -rf etc.zip
[[email protected] tmp]$ ls
etc.zip.bz2

bzip2 解压缩
[[email protected] tmp]$ bzip2 -d etc.zip.bz2
[[email protected] tmp]$ ls
etc.zip