问题引发:
服务器每天产生大量的系统日志,查询日志,目前日志这块没有人专门拿出来做分析,处理这些日志.随着时间以及服务器访问量的与日俱增,不小心就会出现硬盘被日志文件占满的现象.如果删除这些日志,以后日志分析也许要用到.不删现有服务会受到影响.以后可能会专门有一台服务器来处理这些日志,分析日志,估算出性能瓶颈,以及得出相应的有价值的商业信息.所以只能临时处理一下.
看了一下linux的压缩格式好多种,忽然一看有些晕,发一篇关于linux压缩文件的详细文章,摘自:Unix爱好者家园unix-cd.com ,以下是原文
对于刚刚接触 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 包后,就可以用其它的程序来进行压缩了,所以我们先了解一下 tar 命令的基本用法:
tar 命令的选项有很多(用man tar可以查看到),但我们通常需要的就是那么几个:
# 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 包中所有文件,-t 是解开的意思
以上就是 tar 的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件,tar 提供了一种特殊的功能。这就是 tar 可以在打包或解包的同时调用其它的压缩程序,比如调用 gzip、bzip2 等。
(一)、 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
这条命令是将上面产生的包解开。
(二)、 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
这条命令是将上面产生的包解开。
(三)、 tar 调用 compress
compress 也是一个压缩程序,但是好象使用 compress 的人不如 gzip 和 bzip2 的人多。.Z 结尾的文件就是 bzip2 压缩的结果。与 compres s相对的解压程序是 uncompress。tar 中使用 -Z 这个参数来调用 gzip。下面来举例说明一下:
# tar -cZf all.tar.Z *.jpg
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 compress 压缩,生成一个 uncompress 压缩过的包,包名为 all.tar.Z
# tar -xZf all.tar.Z
这条命令是将上面产生的包解开
有了上面的知识,你应该可以解开多种压缩文件了,下面对于 tar 系列的压缩文件作一个小结:
(一)、对于 .tar 结尾的文件
tar -xf all.tar
(二)、对于 .gz 结尾的文件
gzip -d all.gz
gunzip all.gz
(三)、对于 .tgz 或 .tar.gz 结尾的文件
tar -xzf all.tar.gz
tar -xzf all.tgz
(四)、对于 .bz2 结尾的文件
bzip2 -d all.bz2
bunzip2 all.bz2
(五)、对于 tar.bz2 结尾的文件
tar -xjf all.tar.bz2
(六)、对于 .Z 结尾的文件
uncompress all.Z
(七)、对于.tar.Z结尾的文件
tar -xZf all.tar.z
另外对于 Window 下的常见压缩文件 .zip 和 .rar,Linux 也有相应的方法来解压它们:
(1)对于 .zip
linux 下提供了 zip 和 unzip 程序,zip 是压缩程序,unzip 是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# zip all.zip *.jpg
这条命令是将所有 .jpg 的文件压缩成一个 zip 包
# unzip all.zip
这条命令是将 all.zip 中的所有文件解压出来
(2)对于 .rar
要在 linux 下处理 .rar 文件,需要安装 RAR for Linux,可以从网上下载,但要记住,RAR for Linux
不是免费的;可从
http://www.rarsoft.com/download.htm 下载 RAR for Linux 3.2.0,然后安装:
# 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 中的所有文件解压出来
到此为至,我们已经介绍过 linux 下的 tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar 等程式,你应该已经能够使用它们对 .tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar 这 10 种压缩文件进行解压了,以后应该不需要为下载了一个软件而不知道如何在 Linux 下解开而烦恼了。而且以上方法对于 Unix 也基本有效。
本文介绍了 linux 下的压缩程式 tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar 等程式,以及如何使用它们对 .tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar 这 10 种压缩文件进行操作。