阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux压缩那些事儿

81次阅读
没有评论

共计 2025 个字符,预计需要花费 6 分钟才能阅读完成。

本文由 LinuxProbe.Com 团队成员 逄增宝 整理发布,原文来自:linuxeden。

tar 简介

Linux 压缩那些事儿
Linux 的压缩命令的源文件只能有一个,这意味在压缩之前不得不先将要压缩的所有文件打包成一个包,然后再压缩包,这样来完成对多个文件的压缩。所以在了解解压缩之前就必须先了解打包命令。
Linux 的打包一般都是通过 tar 命令来完成的,用 tar 来完成不同的动作是通过指定不同的参数来完成的,通常使用的也就是——x/c,这两个参数,它们的字面含义是 c——create,x——extract,创建和分包提取,另外还有一些常用的参数,比如 a 将 tar 添加到另外一个 tar 包的末尾,t 列出包中的文件,-C 将工作目录切换到指定的目录下,指定这个参数就可以将解压后的文件放到指定的目录当中去了。另外有一个重要的参数 f, 这个参数可以打包的结果放在一个文件当中。

tar 打包和解包
1. 打包文件

将 fiel1,file2,file3 打包成 file.tar:

tar -cf file.tar file1 file2 file3

-c 打包模式
-f 指定将要创建的打包结果存放文件

2. 解包文件

现在有一个包 file.tar 将它解包:

tar -xf file.tar

-x 解包模式
-f 指定 tar 包文件

压缩软件简介

GZIP 最早由 Jean-loup Gailly 和 Mark Adler 创建,用于 UNⅨ系统的文件压缩。我们在 Linux 中经常会用到后缀为.gz 的文件,它们就是 GZIP 格式的。现今已经成为 Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。
Linux 压缩那些事儿
bzip2 是一个基于 Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的 LZ77/LZ78 压缩算法来得好。bzip2 能够进行高质量的数据压缩。它利用先进的压缩技术,能够把普通的数据文件压缩 10% 至 15%,压缩的速度和解压的效率都非常高!支持大多数压缩格式,包括 tar、gzip 等等。
Linux 压缩那些事儿

压缩的作用毋庸置疑,一旦一件事物变的更为简单之后,各方面的操作就更为简单,Linux 的压缩一般有几种方式,它们是 gzip 压缩,bzip2 压缩,xz 压缩。它们的输入都只有一个,下面讲一个实例,分别用这三种压缩方式来压缩 file.tar,然后压缩好的压缩文件再分别用这三种方式解压,生成 xfile.tar, 由于分别对单纯的解压和压缩并不是本文的重点,所以有些参数就不着重介绍,但需要的时候会简单的介绍下。

压缩软件使用
1. 用 gzip 操作
压缩:gzip file.tar(将文件压缩到指定的文件当中去,可用 "gzip -c file.tar > file.tar.gz")解压:gunzip file.tar.gz(将文件压缩到指定的文件当中去,可用 "gzip -c file.tar > file.tar.gz")
2. 用 bzip2 操作
压缩:bzip2 -c file.tar > xifle.tar.bz2
解压:bunzip2 -cv xfile.tar.bz2 > xfile.tar
3. 用 xz 操作
压缩:xz -c file.tar > xfile.tar.xz
解压:unxz -c xfile.tar.xz > xfile.tar

对于压缩来讲,压缩率显然是首要关注点,就压缩率而言,xz>bzip2>gzip, 一般情况下 xz 能比 bzip2 高出 15% 的压缩率,比 gzip 高出 30% 的压缩率,但是另外的有一些东西在具体的场合下还是需要关心的,比如 CPU 占有率,xz 虽然压缩比高,但是它的耗时却是最多的,这意味着占用了更多的 CPU 时间片,所以在选择压缩算法的时候还应该考虑到现在的首要关注点是什么,以此来选择压缩算法。

tar 压缩和解压

上面分别讲解了打包和解压缩这两个过程,但这两个过程是分开的,在通常情况下,这两个过程不会分开,而是用 tar 包一步将多个文件打包压缩成一个压缩包,下面将分别使用 tar 命令调用这三种压缩方式来完成一步将多个文件打包压缩成一个压缩包。

1. 用 tar 调用 gzip 将 file1,file2,file3 生成压缩包, 并解压。
压缩:tar -czvf file.tar.gz file{1,2,3}
解压:tar -xzvf file.tar.gz
2. 用 tar 调用 bzip2 将 file1,file2,file3 生成压缩包, 并解压。
压缩:tar -cjvf file.tar.gz file{1,2,3}
解压:tar -xjvf file.tar.gz
3. 用 tar 调用 xz 将 file1,file2,file3 生成压缩包, 并解压。
压缩:tar -cJvf file.tar.gz file{1,2,3}
解压:tar -xJvf file.tar.gz

对于上面的文字,有点需要注意,那就是后缀名并不是必须的,Linux 当中后缀名都不是必须的,这应该是一个基础点,之所以指定后缀名是为了便于区别,也方便一些粗糙的识别程序。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2025字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中