linux常见的几种压缩命令tar,gz,zio,bz2

Linux下压缩、解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式。

比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而足。而每种压缩和解压方式所耗CPU时间和压缩比率也差异甚大。在此我一一列举,希望不当之处,敬请各位指教。 --------------------------------------------------------------------------------------------- 1 各种压缩 解压命令Demo (1) tar 仅仅做打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。

打包归档: tar -cvf demo.tar  demo   (demo为需要归档的目录、文件路径,demo.tar存放在当前脚本执行的目录下) tar -cvf demo.tar demo1 demo2  demo3  (demo1,demo2,demo3归档到一个目录)

释放解压: tar -xvf demo.tar (解压至当前shell执行目录下) tar -xvf demo.tar  -C /path (/path 解压至其它路径)

(2)tar.gz tgz   (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理) Linux下使用非常普遍的一种压缩方式,兼顾了压缩时间(耗费CPU)和压缩空间(压缩比率) 其实这是对(1)的tar包进行gzip算法的压缩

打包压缩: tar -zcvf demo.tgz    (demo为shell执行路径下的目录)

释放解压: tar -zxvf demo.tar (解压至当前shell执行目录下) tar -zxvf demo.tar  -C /path (/path 解压至其它路径)

(3)tar.bz Linux下压缩比率较tgz大,即压缩后占用更小的空间,使得压缩包看起来更小。但同时在压缩,解压的过程却是非常耗费CPU时间。

打包压缩: tar -jcvf demo.tar.bz demo   (demo为shell执行路径下的目录)

释放解压: tar -jxvf demo.tar.bz (解压至当前shell执行目录下) tar -jxvf demo.tar.bz  -C /path (/path 解压至其它路径)

(4) tar.bz2 较tar.bz有着更快速的效率。所使用的命令与(3)相同,不再赘述。

(5) .gz 压缩: gzip -d demo.gz demo

解压: gunzip demo.gz

(6) .Z 压缩: compress files

解压: uncompress demo.Z

(7) tar.Z 压缩: tar -Zcvf demo.tar.Z demo

解压: tar -Zxvf demo.tar.Z

(8) .zip 压缩: zip -r demo.zip demo (demo为目录)

解压: zip demo.zip

(9) .rar 压缩: rar -a demo.rar demo

解压: rar -x demo.rar ---------------------------------------------------------------------------------------- 2 各种压缩比率,占用时间对比

为了保证能够让压缩比率较为明显,需选取一个内容较多、占用空间较大的目录作为Demo。我将自己Ubuntu 9.10中/user/local整个目录作为范例,/user/local内所有文件总计大小为877.7MB。

在此,我们定义 压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩包越小

(1).tar tar -cvf local.tar /usr/local 打包后 local.tar: 892.6MB, 耗费时间:55 s (秒)。此实验打包后.tar后反倒比原来文件内容更大,出乎意料! 压缩比率为877.7/892.6=0.98(居然不是相同,等于1!)

tar  -xvf local.tar 释放877.7MB(与原/usr/local大小完全相同,符合预期),耗费时间:78 s,比打包耗时

对于.tar而言,打包比释放较为快速,但打包后的.tar比原目录内容所占空间要大。

(2) .tgz tar -zcvf local.tgz /usr/local 打包后 local.tgz: 344.1MB, 耗费时间: 146 s (秒)。此实验说明.tgz压缩到50%以下的空间,具体为 压缩比率=877.7/344.1 =2.55

tar -zxvf local.tar 解压877.7MB,耗费时间: 56 s。 此与.tar 正相反,解压比打包省时了很多,接近到打包时间的三分之一。

(3) .tar.bz tar -jcvf local.tar.bz /usr/local 打包后local.tar.bz: 318.4 MB  耗费时间:330 s(即5 m 30 s,非常之漫长!) 压缩比率为877.7/318.4=2.76

相对于.tgz的压缩得更小巧,但优势并不大,CPU耗费时间却多了两倍多。

tar -xcvf local.tar.bz 解压877.7 MB,耗费时间: 128 s。 此与.tgz相似,解压比打包省时很多,接近打包时间的三分之一。

(4) .tar.bz2 tar -jcvf local.tar.bz2 /usr/local 打包后local.tar.bz:  318.4 MB  耗费时间: 302 s 压缩比率为877.7/318.4=2.76

综上结果,初步结论:

综合起来,在压缩比率上: tar.bz2>tgz>tar 占用空间与压缩比率成反比: tar.bz2<tgz<tar 耗费时间(打包,解压) 打包:tar.bz2>tgz>tar 解压: tar.bz2>tar>tgz 从效率角度来说,当然是耗费时间越短越好

因此,Linux下对于占用空间与耗费时间的折衷多选用tgz格式,不仅压缩率较高,而且打包、解压的时间都较为快速,是较为理想的选择。

结论:

再一次印证了物理空间与时间的矛盾(想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了)。 一般情况下不会有太大的影响: 个人一般喜欢使用:tar.gz压缩

原文地址:https://www.cnblogs.com/zhanhj/p/9392067.html

时间: 2024-11-09 03:18:00

linux常见的几种压缩命令tar,gz,zio,bz2的相关文章

Linux常见文件及用户管理命令

Linux常见文件及用户管理命令 * Linux上的文件管理类命令1.目录管理命令 (1)ls:list,列出指定目录下的内容 ls [OPTION]... [FILE]... -a:显示所有文件,包括隐藏文件; -A:显示除.和..之外的所有文件 -l:--long,长格式列表,即显示文件的详细属性信息 [[email protected] /]# ls -l /etc/fstab -rw-r--r--. 1 root root 501 Jul 24 09:24 /etc/fstab -:文件

Delphi - Windows系统下,Delphi调用API函数和7z.dll动态库,自动把文件压缩成.tar.gz格式的文件

项目背景 应欧美客户需求,需要将文件压缩成.tar.gz格式的文件,并上传给客户端SFTP服务器. 你懂的,7-Zip软件的显著特点是文件越大压缩比越高,在Linux系统上相当于我们Windows系统上WinRAR或者好压软件一样的存在. 7-Zip软件下载与安装 网上下载相关安装包并完成安装,找到安装目录,复制7z.dll文件到D盘. .bat文件的制作 通过7-Zip软件使用手册了解到,通过动态命令行调用7z.dll可以把文件压缩成.tar.gz格式的,实际上是先将文件压缩成.tar格式的文

Linux下的打包与压缩和tar命令!

本文介绍了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种压缩文件进行操作. 在Windows下最常见的压缩文件就只有两种,一是.zip,另一个是.rar.而在linux下有它有.gz..tar.gz.tgz.bz2..Z压缩文件,当然.

Linux的压缩命令(tar,gzip,zip)

打包和压缩.打包是指将一大堆文件或目录变成一个总的文件:压缩则是将一个大的文件通过一些压缩算法变成一个小文件. 这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩. 1.tar (针对tar包)参考:http://blog.csdn.net/eroswang/article/details/5555415/ tar 参数 被打包的包 参数:-c 创建打包 -x解包  -t 查看(必选,而且

Linux目录、查看及压缩命令(cat、more等等)

今天值得一提的内容是:(1)树形目录结构(2)查看命令的使用(3)压缩.归档命令 一.数形目录结构 1.根目录所有分区.目录.文件等的位置起点整个树形目录结构中,使用独立的一个2.常见子目录/root /bin /boot /dev /etc/home /var /usr /sbin3.各个子目录的功能:?/root:系统管理员root的宿主目录?/home:普通用户的宿主目录?/boot:系统内核.启动文件?/dev:设备文件(光驱.磁盘)?/etc:配置文件,其中的/passwd是账号信息?

打包压缩命令tar

之前介绍的gzip和bzip2都是压缩命令,但是它们只可以压缩单个文件.如果我们需要压缩一个目录中的所有文件的话,就需要使用tar. tar的使用简单,关键是做好参数的设置.几个常用的参数配置如下: 1)tar -jcv -f 压缩文件名.tar.bz2 被压缩文件名 第一个文件名是压缩文件名,这个需要用户自己设置,tar命令是不会默认文件名的.-jcv参数表示使用bzip2压缩方式,而且压缩的时候显示处理的文件名.-f必须和被压缩的文件名放在一起. 2)tar -jtv -f 压缩文件名  其

LINUX 笔记之常用打包压缩命令

1.将所有.jpg文件打成一个名为all.tar的包 tar -cf all.tar *.gif 2.将所有.gif文件追加到all.tar tar -rf all.tar *.gif 3.更新原来tar包中logo.gif文件 tar -uf all.tar logo.gif 4.列出all.tar中文件 tar -tf all.tar 5.解包文件 tar -xf all.tar 6.tar调用gzip tar -czf all.tar.gz *.jpg tar -xzf all.tar.g

linux commands - 一次性解压多个tar.gz文件

1 echo *.tar.gz | xargs -n 1 tar -zxvf list所有tar.gz文件,然后利用xargs将其作为参数传给tar命令.-n 1表示每次传一个参数. xargs: https://www.cnblogs.com/wangqiguo/p/6464234.html 阅读目录 为什么要用xargs,问题的来源 xargs是什么,与管道有什么不同 xargs的一些有用的选项 回到顶部 为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的

linux处理U盘中的资料-挂载-tar.gz软件安装-linux环境下软件的安装方式

1. U盘插入linux一般会有以下反映 (1)/dev 的目录下,多出一个sdb的磁盘. 因为:目前系统中有两个硬盘, sda是原来的系统磁盘.sdb是插入的U盘. 其中:sdb1表示sdbU盘的一个分区. (2)在/dev/disk/ 硬盘目录下,可以通过by-label查看所有的当前系统中的所有硬盘标识. 其中FILE 是插入U盘的盘符. (3)通过fdisk 可以查看到当前插入U盘情况下的所有的分区情况 通过以上特征,可以看到插入的U盘可以被linux系统识别,但是不能进入U盘的内部.