压缩 解压

\● tar -cjf all.tar.bz2 *.jpg
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,包名为 all.tar.bz2
 
● tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。

一: tar
Usage: tar [OPTION...] [FILE]...
GNU 'tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.

Examples:
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
tar -tvf archive.tar # List all files in archive.tar verbosely.
tar -xf archive.tar # Extract all files from archive.tar.
语法:tar <主选项> [辅选项] 文件或者目录

使用该命令时,主选项是必须要有的,它告诉 tar 要做什么事情,辅选项是辅助使用的,可以选用。

1、主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
2、辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为 20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告 tar 处理的文件信息。如无此选项,tar 不报告文件信息。
w 每一步都要求确认。
z 用 gzip 来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

对于刚刚接触 Linux 的人来说,一定会给 Linux 下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在 Windows 下最常见的 压缩文件就只有两种,一是 .zip,另一个是 .rar。可是Linux 就不同了,它有 .gz、.tar.gz、tgz、bz2、.Z、.tar 等众多的压缩文件名,此外 windows 下的 .zip 和 .rar 也可以在 Linux 下使用,不过在 Linux 使用 .zip 和 .rar 的人就太少了。

在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?其实这源于 Linux 中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。

Linux 下最常用的打包程序就是 tar 了,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar 结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了。

  1. 实例
    2.1 打包文件
    ● tar -cf all.tar *.jpg
    这条命令是将所有 .jpg 的文件打成一个名为 all.tar 的包。-c 是表示产生新的包,-f 指定包的文件名。

● tar -rf all.tar *.gif
这条命令是将所有 .gif 的文件增加到 all.tar 的包里面去。-r 是表示增加文件的意思。

● tar -uf all.tar logo.gif
这条命令是更新原来 tar 包 all.tar 中 logo.gif 文件,-u 是表示更新文件的意思。

● tar -tf all.tar
这条命令是列出 all.tar 包中所有文件,-t 是列出文件的意思。

● tar -xf all.tar
这条命令是解出 all.tar 包中所有文件,-x 是解开的意思。

二: 打包并压缩
为了方便用户在打包解包的同时可以压缩或解压文件,tar 提供了一种特殊的功能。这就是 tar 可以在打包或解包的同时调用其它的压缩程序,比如调用 gzip、bzip2 等。

2.1 tar 调用 gzip

gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压缩的结果。与 gzip 相对的解压程序是 gunzip。tar 中使用 -z 这个参数来调用 gzip。下面来举例说明一下:

● tar -czf all.tar.gz *.jpg
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 gzip 压缩,生成一个 gzip 压缩过的包,包名为 all.tar.gz

● tar -xzf all.tar.gz
这条命令是将上面产生的包解开。

2.2 tar 调用 bzip2

bzip2 是一个压缩能力更强的压缩程序,.bz2 结尾的文件就是 bzip2 压缩的结果。与 bzip2 相对的解压程序是 bunzip2。tar 中使用 -j 这个参数来调用 gzip。下面来举例说明一下:

● tar -cjf all.tar.bz2 *.jpg
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,包名为 all.tar.bz2

● tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。

2.3 tar 调用 compress

compress 也是一个压缩程序,但是好象使用 compress 的人不如 gzip 和 bzip2 的人多。.Z 结尾的文件就是 bzip2 压缩的结果。与 compress 相对的解压程序是 uncompress。tar 中使用 -Z 这个参数来调用 gzip。下面来举例说明一下:

● tar -cZf all.tar.Z *.jpg
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 compress 压缩,生成一个 uncompress 压缩过的包,包名为 all.tar.Z

● tar -xZf all.tar.Z
这条命令是将上面产生的包解开

三 .解压

对于 Window 下的常见压缩文件 .zip 和 .rar,Linux 也有相应的方法来解压它们。

3.1 对于 .zip

linux 下提供了 zip 和 unzip 程序,zip 是压缩程序,unzip 是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

● zip all.zip *.jpg
这条命令是将所有 .jpg 的文件压缩成一个 zip 包

● unzip all.zip
这条命令是将 all.zip 中的所有文件解压出来

3.2 对于 .rar

要在linux下处理 .rar 文件,需要安装 RAR for Linux,可以从网上下载,但要记住,RAR for Linux 不是免费的。

安装步骤:
tar -xzpvf rarlinux-3.2.0.tar.gz
cd rar
make

这样就安装好了,安装后就有了 rar 和 unrar 这两个程序,rar 是压缩程序,unrar 是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

● rar a all *.jpg
这条命令是将所有 .jpg 的文件压缩成一个 rar 包,名为 all.rar,该程序会将 .rar 扩展名将自动附加到包名后。

● unrar e all.rar
这条命令是将 all.rar 中的所有文件解压出来

四:比较

roc@roc-System-Product-Name:/home/workspace/rk3328-android7.1/kernel$ ll drivers* -h
-rw-rw-r--   1 roc roc 542M  3月  5 18:54 drivers.tar
-rw-rw-r--   1 roc roc  76M  3月  5 18:58 drivers.tar.bz2
-rw-rw-r--   1 roc roc 100M  3月  5 18:57 drivers.tar.gz

都是归档后压缩 所以bz2 比 gz压缩率大点(本次)

你可能感兴趣的:(压缩 解压)