本文主要是介绍TAR,GZIP, BZIP2, XZ tar.xz zip 7z汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
常用压缩解压命令:tar
常用格式:tar.bz2、tar.gz,均可用tar实现压缩和解压。
对rar、zip等不常用的压缩文件,打开后可直接用鼠标拖出,即可实现解压。如果想用命令,请参考以下。
/*******************************************************************************/
原文地址: http://hi.baidu.com/mudgao/blog/item/48746b3f8cd2d6d87c1e7139.html
此文只是大致看了一点,尚没有全部看完,发现其中也有一些错误,不过整个文章的内容还是不错的,先转过来,后续仔细看,然后再加工。
1.Tar仅仅只是一个打包工具,并不负责压缩
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩, 压缩是由gzip与bzip2来实现的。因此把*.tar*、.tar.gz、*.tar.bz2 放到一起来举例:
比如我们要把目录/home/www下的test目录打包压缩到当前目录
tar zcvf test.tar test//仅打包,不压缩
tar zcvf test.tar.gz test //打包后以gzip压缩
tar jcvf test.tar.bz2 test // 打包后以bzip2压缩
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
如何解压缩包:
tar xvf test.tar
tar zxvf test.tar.gz
tar zxvf test.tar.bz2
选项:
-c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
-O 将文件解开到标准输出
-v 处理过程中输出相关信息 //如果使用,解压和压缩过程中,会显示详细信息,不用则是静默化
-f 对普通文件操作
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩
上面测试中,每次要删除解压后的test文件后解压打其他目录,因为如果不定义解压后目录路径和名字则默认解压到当前目录并以把压缩包名称作为文件夹名字。如果要解压到其他目录(如:/var/tmp/find)则如下:
tar zxvf test.tar.bz2 -C /var/tmp/find
注意:C要大写
关于tar.gz和tar.bz2压缩率的问题:
*.tar.gz 在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。也会被简写成tgz。
*.tar.bz2网上好的资料说这种压缩格式是压缩率最好的、它比前面的方式要占用更多的CPU与时间。但是经过上面的试验显示发现test.tar.gz的大小竟然比test.tar.bz2的更小
2.Gzip的压缩速度是最快的!
压缩gz格式速度最快,也是UNIX/BSD的常用格式,压缩bz2格式时间稍长一些,但似乎在好机器上还可以接受,xz格式的压缩效果确实不错,cvs.tar是打包的全部OpenBSD CVS库,原本大小有5G多,经过xz压缩后只有700多M,不得不说压缩算法确实强悍,不过压缩时间太长——在我的1300MHz主频的老机器上,将 5G多的cvs打包文件压缩成xz格式用了两个小时左右,看来这种格式最好不作为日常采用的格式,但是如果作为放在服务器上供长期、大量下载的资源,使用这种压缩格式来进行压缩和解压尚可理解。
很多情况下,bzip2压缩率并不比gz高,但一般情况下,它花的时间却远远大于gz;
# ls -la
total 14202000
drwxr-xr-x 3 root wheel 512 Mar 25 21:18 .
drwxr-xr-x 15 root wheel 512 Mar 25 16:35 ..
drwxr-xr-x 10 root wheel 512 Mar 25 17:49 cvs
-rw-r--r-- 1 root wheel 387 Mar 25 16:40 cvs-supfile
-rw-r--r-- 1 root wheel 5208381440 Mar 25 21:18 cvs.tar
-rw-r--r-- 1 root wheel 898476333 Mar 25 21:03 cvs.tar.bz2
-rw-r--r-- 1 root wheel 1162675369 Mar 25 21:13 cvs.tar.gz
# xz -z cvs.tar
# ls -la
total 5467600
drwxr-xr-x 3 root wheel 512 Mar 25 22:32 .
drwxr-xr-x 15 root wheel 512 Mar 25 16:35 ..
drwxr-xr-x 10 root wheel 512 Mar 25 17:49 cvs
-rw-r--r-- 1 root wheel 387 Mar 25 16:40 cvs-supfile
-rw-r--r-- 1 root wheel 898476333 Mar 25 21:03 cvs.tar.bz2
-rw-r--r-- 1 root wheel 1162675369 Mar 25 21:13 cvs.tar.gz
-rw-r--r-- 1 root wheel 737463196 Mar 25 21:18 cvs.tar.xz
3.Linux下.bz2与.gz文件的区别
.bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件。
.bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的。
压缩实例:对一个599M的文件夹workspace进行压缩
bz2文件
time tar -jcvf j.tar.bz2 workspace/
340M 56.8%
real 13m20.975s
user 11m13.872s
sys 0m5.985s
gz文件
time tar -zcvf z.tar.gz workspace/
348M 58.1%
real 2m10.305s
user 0m54.228s
sys 0m7.399s
总结:压缩后,.bz2文件只比.gz文件小了8M,但却花费了后者6倍多的时间。当然,压缩的比率,时间跟被压缩文件的格式,大小等因素有关。所以,本例不能说明使用gz比使用bz2更划算,但至少可以证明bz2比gz压缩率更高,gz比bz2花费更少的时间。
4.继续測試一下 gzip, bzip 與 xz
http://blog.s10g.tw/2011/03/01/compare-of-gzip-bzip2-xz/
被壓縮檔是 ubuntu-10.10-desktop-i386.iso,大小為694MB(726827008 bytes)。
第一次測試,單純測試時間,指定參數全部相同為‘-c ubuntu-10.10-desktop-i386.iso > /dev/null’。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ======== GZIP ======== real 0m44.138s user 0m42.300s sys 0m0.576s ======== BZIP2 ======== real 4m55.145s user 4m53.074s sys 0m0.750s ======== XZ ======== real 7m53.939s user 7m51.902s sys 0m1.436s |
第二次測試,主要紀錄壓縮檔大小,指定參數均為‘-c ubuntu-10.10-desktop-i386.iso > u1010.iso.gz’
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ======== GZIP ======== real 0m44.551s user 0m42.279s sys 0m1.303s 684M(716987381 bytes) u1010.iso.gz ======== BZIP2 ======== real 4m52.963s user 4m50.558s sys 0m1.704s 689M(721999239 bytes) u1010.iso.bz2 ======== XZ ======== real 8m3.213s user 7m57.394s sys 0m2.654s 679M(711776308 bytes) u1010.iso.xz |
測試的script
第一次:
1 2 3 4 5 6 7 | #!/bin/sh echo======== GZIP ======== timegzip-c ubuntu-10.10-desktop-i386.iso > /dev/null echo======== BZIP2 ======== timebzip2-c ubuntu-10.10-desktop-i386.iso > /dev/null echo======== XZ ======== timexz -c ubuntu-10.10-desktop-i386.iso > /dev/null |
第二次:
1 2 3 4 5 6 7 8 9 10 | #!/bin/sh echo======== GZIP ======== timegzip-c ubuntu-10.10-desktop-i386.iso > u1010.iso.gz ls-sh u1010.iso.gz echo======== BZIP2 ======== timebzip2-c ubuntu-10.10-desktop-i386.iso > u1010.iso.bz2 ls-sh u1010.iso.bz2 echo======== XZ ======== timexz -c ubuntu-10.10-desktop-i386.iso > u1010.iso.xz ls-sh u1010.iso.xz |
显而易见,GNU本家的东西一定都是最好的。
/*******************************************************************************/
XZ压缩最新压缩率之王
xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。
之前xz使用一直很少,所以几乎没有什么提起。
我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。
最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压缩。不过xz也有一个坏处就是压缩时间比较长,比7z压缩时间还长一些。不过压缩是一次性的,所以可以忽略。
xz压缩文件方法或命令
xz -z 要压缩的文件
如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入参数 -0 到 -9调节压缩率。如果不设置,默认压缩等级是6.
xz解压文件方法或命令
xz -d 要解压的文件
同样使用 -k 参数来保留被解压缩的文件。
创建或解压tar.xz文件的方法
习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也会想用单一命令搞定解压或压缩。其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。
创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz
解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。
原文地址:http://blog.csdn.net/rheostat/article/details/7614451
/*******************************************************************************/
linux zip命令
zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
2.unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;
3.其他
zip -d myfile.zip smart.txt
删除压缩文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt
向压缩文件中myfile.zip中添加rpm_info.txt文件
-------------------------------------------------------------------------------
要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:
zip -r filename.zip filesdir
在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。
要抽取 zip 文件的内容,键入以下命令:
unzip filename.zip
你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
zip -r filename.zip file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。
/*******************************************************************************/
2)对于.7z
支持 7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB 压缩文件格式
安装: sudo apt-get install p7zip p7zip-full p7zip-rar
# 7z a yajiu.7z yajiu.jpg yajiu.png
这条命令是将yajiu.jpg和yajiu.png压缩成一个7z包
# 7z a yajiu.7z *.jpg
这条命令是将所有.jpg的文件压缩成一个7z包
# 7z a yajiu.7z yajiu
这条命令是将文件夹yajiu压缩成一个7z包
# 7z e yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,e是解压到当前路径
# 7z x yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,x是解压到压缩包命名的目录下
yajiu@yajiu-desktop:~$ cd 图片
yajiu@yajiu-desktop:~/图片$ 7z a yajiu.7z yajiu.jpg yajiu.png
7-Zip (A) 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning
Creating archive yajiu.7z
Compressing yajiu.jpg
Compressing yajiu.png
Everything is Ok
yajiu@yajiu-desktop:~/图片$ 7z a yajiu.7z *.jpg
7-Zip (A) 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning
Creating archive yajiu.7z
Compressing 1.jpg
Compressing 2.jpg
Everything is Ok
yajiu@yajiu-desktop:~/图片$ 7z a yajiu.7z yajiu
7-Zip (A) 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning
Creating archive yajiu.7z
Compressing yajiu/yajiu.7z
Compressing yajiu/yajiu.rar
Compressing yajiu/yajiu.zip
Compressing yajiu/yajiu.jpg
Compressing yajiu/yajiu.png
Everything is Ok
yajiu@yajiu-desktop:~/图片$ 7z x yajiu.7z
7-Zip 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Processing archive: yajiu.7z
file 1.jpg
already exists. Overwrite with
1.jpg?
(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename / (Q)uit? Y
Extracting 1.jpg
file 2.jpg
already exists. Overwrite with
2.jpg?
(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename / (Q)uit? Y
Extracting 2.jpg
Everything is Ok
Files: 2
Size: 112564
Compressed: 96228
yajiu@yajiu-desktop:~/图片$
原文链接:http://hi.baidu.com/zgyz/blog/item/f7ef29085c90d4d663d98665.html
这篇关于TAR,GZIP, BZIP2, XZ tar.xz zip 7z汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!