压缩打包

1 压缩

1.1 compress

compress 是非常古老的压缩命令,早已弃用,写在这里只因考虑历史的进程。它的专属后缀名为 .Z 。注意: compress 会删除原始文件!

[root@www ~]# compress [-crv] filename_or_pathname
[root@www ~]# uncompress filename.Z

-c 将压缩后的数据传入标准输出。
-r 子目录下的文件也进行压缩。
-v 显示压缩前后的信息。

1.2 gzip

gzip 是应用最广的压缩命令。gzip 压缩文件后缀名为 .gz ,能解开 compress 、 zip 与 gzip 压缩的文件。 Windows 下的 WinRar 也支持解压缩 gzip 压缩文件。注意:与 compress 一样, gzip 会删除原始文件或目录!

[root@www ~]# gzip [-cvt#] filename
[root@www ~]# gzip -d filename.gz

-c 显示压缩过程。
-v 显示压缩结果。

-t 检验一致性。

-# 压缩等级。 -1 最快,压缩比最差; -9 最慢,压缩比最好;默认 -6 。

-d 解压缩。

纯文本的 .gz 压缩文件可以用 zcat 命令直接查看。

[root@www ~]# zcat filename.gz

1.3 bzip2

如果说 gzip 取代了 compress ,那么 bzip2 就是取代了 gzip 。bzip2 压缩比更佳,而且用法与 gzip 几乎相同!

[root@www ~]# bzip2 [-ctv#] filename
[root@www ~]# bzip2 -d filename.gz

-c 显示压缩过程。
-v 显示压缩结果。

-k 保留原始文件。
-t 检验一致性。

-# 压缩等级。 -1 最快,压缩比最差; -9 最慢,压缩比最好;默认 -6 。

-d 解压缩。

包括 bzcat 的用法也和 zcat 一致:

[root@www ~]# bzcat filename.bz2

1.4 xz

略。

2 打包

2.1 tar

虽然 gzip 与 bzip2 也能够针对目录来进行压缩, 不过它们对目录的压缩是对目录内所有文件分别压缩! 这与 WinRar 将好多文件打包并压缩成一个文件不同。

Linux 下的打包命令是 tar 。 tar 最初设计目的是将文件备份到磁带上 tape archive ,因此得名。 tar 可以将多个目录或文件打包成一个大文件,同时用 gzip 和 bzip2 压缩大文件! tar 的选项与参数非常的多,这里只列几个常用的:

[root@www ~]# tar [-j|-z] [cv] [-f filename.tar.bz2] filename...
[root@www ~]# tar [-j|-z] [tv] [-f filename.tar.bz2]
[root@www ~]# tar [-j|-z] [xv] [-f filename.tar.bz2] [-C pathname]

-j 用 bzip2 进行压缩/解压缩,压缩文件后缀名 `*.tar.bz2`
-z 用 gzip  进行压缩/解压缩,压缩文件后缀名 `*.tar.gz`

-c 创建打包文件
-t 查看打包文件
-x 解开打包文件。

-v 显示打包的过程与结果。

-f 被打包的文件。
-C 解压缩的目录。

注意: -c, -t, -x 不能同时出现!

再精简一下:

tar -cv  -f filename.tar filename_or_pathname
tar -cvj -f filename.tar.bz2 filename_or_pathname
tar -tvj -f filename.tar.bz2
tar -xvj -f filename.tar.bz2 [-C pathname]

没有压缩的称为 tarfile ,有压缩的称为 tarball 。

很多文章往往将压缩命令写成 -cvjf filename.tar.bz2 ,这是对的,因为选项顺序理论上可以变换,但这导致不少读者会误认为 -vjfc filename.tar.bz2 也行,而事实上这样写会致产生的文件名为 c 的压缩文件!所以建议单列 -f filename.tar.bz2 ,比较保险。

为了保证解包时本地文件的安全性,所有文件都使用相对路径打包,并发出警告:

tar: Removing leading '/' from member names

2.2 rar

rar 全称 RoshalARchive , Roshal 是作者的姓氏。 rar 最初用于 DOS ,现已移植到其它平台,且公开了源代码。 官方网站 提供所有版本的下载地址。

3 备份和恢复

dump 和 restore 。

4 烧录

待续。