漫谈压缩格式
概述
对于刚刚接触 Linux 的人来说,一定会给 Linux 下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在 Windows 下最常见 的压缩文件就只有两种:一是 zip,另一个是 rar。可是 Linux 就不同了,它有 .gz、.tar.gz、.bz2、.Z、.tar
等众多压缩文件名,此外 Windows 下的 zip 和 rar 也可以在 Linux 下使用,不过在 Linux 使用 zip 和 rar 的人就太少了。
本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕。
为什么要有压缩文件
文件对于操作系用的重要性不言而喻,Unix 更是基于文件管理的系统,我们来想一下普通用户都会用到的场景,假设你需要往 U盘里拷贝 100 个 Excel 文件,我们当然可以 Ctrl+A 全选、Ctrl+C 复制最后到 U盘中 Ctrl+V 粘贴,一顿操作猛如虎。
但若想把这 100 个文件通过 QQ 发送给朋友,你若图省事儿一股脑全拖到聊天窗口发送,估计网线那头的朋友会抓狂,他需要一个个的接收、另存… …
那么问题来了,有没有一种简单有效的方法来进行文件传输?
答案是肯定的,那就是:打包它!
划重点:注意不是压缩!
什么是压缩文件
在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。为什么要区分这两个概念呢?其实这源于 Linux 中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。
打包
打包是指将一大堆文件或目录什么的变成一个总的文件。tar、zip 都有打包功能。不改变文件大小,就是打个包,变成一个文件的文件夹,解压速率也很快。
压缩
压缩是将一个大的文件通过一些压缩算法变成一个小文件,顾名思义,通常说的 rar、tar 等这些大多都是格式,而不是算法。
多数人电脑上装有是 WinRAR、7z、BandZip 等解压软件,它们也能兼容市面上的多数格式。
常见压缩格式介绍
rar、tar、zip、7z
是归档容器,里面可以放多个文件、有目录结构。
tar
本身是一个文件打包备份的工具,没有自身的压缩功能。通常的使用方式为打包后再调用其他压缩库进行文件压缩。比较适合 Linux 系统,保持文件权限状态、软硬链接能力强。
zip
是公开的一种压缩算法,压缩比目前相对不太高。
gz,gzip
是 GNU 组织开发的一个压缩程序,.gz
结尾的文件就是 gzip 压缩的结果。与 gzip 相对的解压程序 gunzip。
rar
是带专利的商业算法,压缩比目前比较高。
bz2
是 Linux 下常见的压缩文件格式,是由具有高压缩率的压缩工具 bzip2 生成,以后缀为 .bz2 结尾的压缩文件。
Z
,compress也是一个压缩程序,.Z 结尾的文件就是 compress 压缩的结果。与 compress 相对的解压程序是 uncompress 。
Linux 的 tar 命令
Linux 下最常用的打包程序就是 tar 了,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar 结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar 命令的基本用法。
必须的参数:(不能共存) -c,创建压缩文件。c 代表 create。 -x,解压缩文件。 -t,查看压缩包里面的文件。 -r,向压缩归档文件末尾追加文件 。 -u,更新原压缩包中的文件。
辅助参数:(可用一个或多个) -z,用 gzip 压缩/解压缩。 -j,用 bzip2 压缩/解压缩。 -v,显示压缩/解压缩的进度条。 -f,使用档案文件或设备,这个选项通常是必选的(注意:f后面不要接参数,也就是说-zxfv是不对的,要写成-zxvf)。 -O,将文件解开到标准输出。
小结
格式 | 说明 |
---|---|
*.tar | 用 tar –xvf 解压 |
*.gz | 用 gzip -d 或者 gunzip 解压 |
*.tar.gz | 用 tar –xzf 解压 |
*.tgz | 用 tar –xzf 解压 |
*.bz2 | 用 bzip2 -d 或者用 bunzip2 解压 |
*.tar.bz2 | 用 tar –xjf 解压 |
*.Z | 用 uncompress 解压 |
*.tar.Z | 用 tar –xzf 解压 |
*.rar | 用 unrar 解压 |
*.zip | 用 unzip 解压 |
到此为至,我们已经介绍过 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 下解开而烦恼了。
- 原文作者:范明勇
- 原文链接:https://blog.fanmuyong.com/post/%E6%BC%AB%E8%B0%88%E5%8E%8B%E7%BC%A9%E6%A0%BC%E5%BC%8F/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。