欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在 Linux 下创建和解压 tar、tar.gz 和 tar.bz2 文件并比较压缩率

最编程 2024-04-28 15:34:21
...

我一直在用:

tar -zcvf /alimydata/db.tar.gz  /mydata/server/mysql-5.1.57/var/db 

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 

目前Linux下常见的压缩文件扩展名:
 *.Z        compress程序压缩的文件(最早期使用),压缩后取代源文件;
 *.zip      一个夸平台的文件打包程序,适用于Linux、windows和Mac OS系统;
 *.bz2      bzip2程序压缩的文件;
 *.gz       gzip程序压缩的文件;
 *.tar      tar程序打包的文件,并没有压缩;
 *.tar.gz   tar程序打包的文件,并经过gzip程序的压缩;
 *.tar.bz2  tar程序打包的文件,并经过bzip2程序压缩。
 
 Tips:所谓扩展名只是大家约定的通用格式,是为了更方便的能一眼识别出是什么压缩类型,当然你可以打包或压缩为任意格式的后缀名,只要你愿意。

A)*.zip格式是大家最常见的一种,它具有夸操作系统平台性,可以同时在windows、Linux和Mac Os上使用。

大家可以用zip格式压缩那些需要共享给windows用户的文件。

压缩与解压.ZIP格式的文件:

[root@local tmp]$ zip -r test.zip tmp 
adding: test/ (stored 0%) 
adding: test/data-file (deflated 24%) 
adding: test/r (deflated 51%)


下面是如果解压一个zip文档:

[root@local tmp]$ rm -rf test     #为测试解压,先删除当前目录下的tmp文件
[root@local tmp]$ unzip  test.zip 
  Archive:  test.zip
  creating: test/
  inflating: test/data-file
  inflating: test/rB)


 压缩与解压*.tar*、.tar.gz、*.tar.bz2 格式的文件及对比:
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩,压缩是由gzip与bzip2来实现的。

因此把*.tar*、.tar.gz、*.tar.bz2 放到一起来举例:

比如我们要把目录/var/tmp下的test目录打包压缩到当前目录

[root@local tmp]$ tar -cvf   test.tar   test                ### 仅打包,不压缩
[root@local tmp]$ tar -zcvf  test.tar.gz    test        ### 打包后以gzip压缩
[root@local tmp]$ tar -jcvf  test.tar.bz2   test        ### 打包后以bzip2压缩
[root@local tmp]$ ll     test.tar*                        ### 对比压缩后文件大小
-rw-r--r-- 1 Lee mock 10240 01-18 17:05 test.tar 
-rw-r--r-- 1 Lee mock   357 01-18 17:06 test.tar.bz2 
-rw-r--r-- 1 Lee mock   327 01-18 17:05 test.tar.gz

 

如何解压缩包:

[root@local tmp]$ tar -xvf   test.tar 
[root@local tmp]$ tar -xvf   test.tar.gz
[root@local tmp]$ tar  -jxvf  test.tar.bz2


上面测试中,每次要删除解压后的test文件后解压打其他目录,因为如果不定义解压后目录路径和名字则默认解压到当前目录并以把压缩包名称作为文件夹名字。如果要解压到其他目录(如:/var/tmp/find)则如下:

[root@local tmp]$ tar  -jxvf  test.tar.bz2  -C  /var/tmp/find

 

关于tar.gz和tar.bz2压缩率的问题:

*.tar.gz 在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。也会被简写成tgz。

*.tar.bz2网上好的资料说这种压缩格式是压缩率最好的、它比前面的方式要占用更多的CPU与时间。

但是经过上面的试验显示发现test.tar.gz的大小竟然比test.tar.bz2的更小(这是否意味者*.tar.gz拥有更小的压缩率)

 如下附上这次测验的文件包(点击文件名下载):
Test文件夹中的2个文件: data-file  和  r
test.tar     test.tar.gz        test.tar.bz2 

作者:Shyue

出处:http://www.cnblogs.com/shyue/

联系方式:shyues@gmail.com 

本文任欢迎何形式转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

 Linux下使用gzip压缩与解压文件

 

Linux下gzip命令是用来压缩文件的。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。

gzip命令的格式是:

gzip [option] [file]

gzip很容易使用。如果想压缩某个文件或者磁带档案文件,可输入下面的内容:

gzip mydir.tar

在缺省的状态下,gzip 会压缩文件、再加上一个.gz扩展名,然后删除掉原来的文件。如果想解压缩文件,可以使用gzip的对应程序命令gunzip或者gzip命令的-d解压 缩参数。但是必须保证这个用于解压缩的文件有.gz(或者.Z、-gz、.z、-z、或者_z)扩展名,否则gzip命令和gunzip命令都会显示出错 信息。如果想使用自己的扩展名,可以使用-S后缀参数,如下所示:

gzip -S .gzipped mydir.tar

gzip 还可以处理用zip命令、compress命令和pack命令压缩的文件包。如果想在压缩或者解压缩的过程中看到更多的信息,可以使用-l列清单参数看到 文件在被压缩或解压缩的时候的文件长度。在前一个例子中,压缩完子目录mydir之后,可以使用gzip命令按照下面的方法得到有关的数据:

# gzip -l mydir.tar.gz

compressed uncompr.ratio uncompressed_name
312 21330 98.2% mydir.tar

此外,gzip还有一个很有用的参数-t,可以用来测试压缩文件的完整性。如果文件正常,gzip不会给出任何显示。如果想看到OK这两个字母,可以在测试某个文件时使用-tv参数。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

Linux gzip压缩文件命令详解 | CentOS Linux教程

http://www.centos.bz/2011/09/linux-gzip/ 

功能说明:压缩文件。

语法:gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][--best/fast][文件...] 或 gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][--best/fast][目录]

补充说明:gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出”.gz”的扩展名。

参数:
 -a或–ascii  使用ASCII文字模式。
 -c或–stdout或–to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。
 -d或–decompress或—-uncompress  解开压缩文件。
 -f或–force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
 -h或–help  在线帮助。
 -l或–list  列出压缩文件的相关信息。
 -L或–license  显示版本与版权信息。
 -n或–no-name  压缩文件时,不保存原来的文件名称及时间戳记。
 -N或–name  压缩文件时,保存原来的文件名称及时间戳记。
 -q或–quiet  不显示警告信息。
 -r或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
 -S<压缩字尾字符串>或—-suffix<压缩字尾字符串>  更改压缩字尾字符串。
 -t或–test  测试压缩文件是否正确无误。
 -v或–verbose  显示指令执行过程。
 -V或–version  显示版本信息。
 -<压缩效率>  压缩效率是一个介于1-9的数值,预设值为”6″,指定愈大的数值,压缩效率就会愈高。
 –best  此参数的效果和指定”-9″参数相同。

 –fast  此参数的效果和指定”-1″参数相同。 

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

 Linux tar gzip 压缩打包命令详解 | 好机房-数据中心

http://www.haojifang.cn/linux-tar-gzip.html

tar命令

1
[root@linux ~]# tar -c/x/t文件与目录 …

参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程。
-f :使用档名,请留意,在 f 之后要立即接档名,不要再加参数。

例如使用 tar -zcvf  haojifang.tar就是错误的写法,要写成
 tar -zjvf haojifang.tar才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例:
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

1
2
3
[root@haojifang ~]# tar -cvf /tmp/etc.tar /etc  //仅打包,不压缩!
[root@haojifang ~]# tar -zcvf /tmp/etc.tar.gz /etc  //打包后,以 gzip 压缩
[root@haojifang ~]# tar -jcvf /tmp/etc.tar.bz2 /etc  //打包后,以 bzip2 压缩

# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/’ from member names』那是关广泛绝对路径的特殊设定。 范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

1
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

# 由于我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
# 就得要加上 z 这个参数了!这很重要的! 范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

1
2
[root@linux ~]