【Linux】漫谈压缩格式:zip、tar、bz2、tar.gz...

  • 前言
  • 为什么要有压缩文件
  • 什么是压缩文件
  • 常见压缩格式介绍
  • Linux常用压缩命令
    • tar命令
    • 实例
    • 对于.zip
  • 小结

前言

下载开源软件的时候,下载站经常会提供多种格式的下载文件如zip、tar.gz等。如果用于Linux操作系统,我们一般会下意识地选择tar.gz结尾的文件而对于Windows环境我常选择zip格式,一直以来就是这么用的,也没有深入了解过,最近简单总结了一下。

对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见 的压缩文件就只有两种,一是,zip,另一个是.rap。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的 压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip.rar的人就太少了。本文就来对这些 常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕。

为什么要有压缩文件

文件对于操作系用的重要性不言而喻,Unix更是基于文件管理的系统,深入理解文件系统不是本文的重点,我们来想一下普通用户都会用到的场景,假设你需要往U盘里拷贝100个Excel文件,我们当然可以Ctrl+A全选、Ctrl+C复制最后到U盘中Ctrl+V粘贴,一顿操作猛如虎。

但若想把这100个文件通过QQ发送给你的朋友,你若图省事儿一股脑全拖到聊天窗口发送给你的朋友,估计网线那头的朋友会抓狂——他需要一个个的接收、另存… …

那么问题来了,有没有一种简单有效的方法来进行文件传输?

答案是肯定的,那就是:打包它!划重点:注意不是压缩!

什么是压缩文件

在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。为什么要区分这两个概念呢?其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。

  1. 打包
    打包是指将一大堆文件或目录什么的变成一个总的文件。tar、zip都有打包功能。不改变文件大小,就是打个包,变成一个文件的文件夹,解压速率也很快。
  2. 压缩
    压缩是将一个大的文件通过一些压缩算法变成一个小文件,顾名思义,通常说的rar、tar等这些大多都是格式,而不是算法。

多数人电脑上装有是好压、360压缩、WinRAR、7z、BandZip等解压软件,它们也能兼容市面上的多数格式,Windows上用起来是足够了。

常见压缩格式介绍

  • rar tar zip 7z是归档容器,里面可以放多个文件、有目录结构,其中zip是不识别文件名的编码,rar是带单独的压缩算法(据说类 Deflate)
  • tar本身是一个文件打包备份的工具,没有自身的压缩功能。通常的使用方式为打包后再调用其他压缩库进行文件压缩。比较适合Linux系统,保持文件权限状态、软硬链接能力强。
  • zip是公开的一种压缩算法,压缩比目前相对不太高。
  • gz,gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunziptar中使用-z这个参数来调用gzip
  • rar是带专利的商业算法,压缩比目前比较高。
  • bz2是Linux下常见的压缩文件格式,是由具有高压缩率的压缩工具bzip2生成,以后缀为.bz2结尾的压缩文件。tar中使用-j这个参数来调用bzip2。
  • Z,compress也是一个压缩程序,但是好象使用compress的人不如gzipbzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用compress。

Linux常用压缩命令

tar命令

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法。

必须的参数:(不能共存)

  1. -c,创建压缩文件c代表create。
  2. -x,解压缩文件
  3. -t,查看压缩包里面的文件!
  4. -r,向压缩归档文件末尾追加文件
  5. -u,更新原压缩包中的文件

辅助参数:(可用一个或多个)

  1. -z,用gzip压缩/解压缩
  2. -j,用bzip2压缩/解压缩
  3. -v,显示压缩/解压缩的进度条
  4. -f,使用档案文件或设备,这个选项通常是必选的(注意:f后面不要接参数,也就是说-zxfv是不对的,要写成-zxvf
  5. -O,将文件解开到标准输出

小结:

  1. *.tar 用tar –xvf解压
  2. *.gz 用gzip -d或者gunzip解压
  3. *.tar.gz和*.tgz 用tar –xzf解压
  4. *.bz2 用bzip2 -d或者用bunzip2解压
  5. *.tar.bz2用tar –xjf解压
  6. *.Z 用uncompress解压
  7. *.tar.Z 用tar –xZf解压
  8. *.rar 用unrar e解压
  9. *.zip 用unzip解压

实例

解压一个文件:

$ tar -zxvf abc.tar.bz2 [-C --path]
# -C可选解压到的路径如下命令将解压到/user/local/a文件夹下
$ tar -zxvf abc.tar.gz -C /user/local/a

创建压缩文件:

$ tar -zcvf abc.tar.bz2 one.mp3 two.mp3

对于.zip

Linux下提供了zipunzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍。

将所有.jpg的文件压缩成一个zip

$ zip all.zip *.jpg

将all.zip中的所有文件解压出来

$ unzip all.zip [-d --path]
# -d可选,作用同tar的-C

小结

到此为至,我们已经介绍过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下解开而烦恼了。而且以上方 法对于Unix也基本有效。

漫谈压缩格式:zip、tar、bz2、tar.gz...相关推荐

  1. Linux下常见的压缩包格式有5种:zip tar.gz tar.bz2 tar.xz tar.Z

    filename.zip的解压: unzip filename.zip filename.tar.gz的解压: tar -zxvf filename.tar.gz z: gzip      压缩格式 ...

  2. 一键式解压tar, tar.gz. tar.bz2, tar.xv文件的shell脚本【转】

    (转自:https://www.cnblogs.com/xmlee/p/9142645.html) tar,  tar.gz. tar.bz2, tar.xv等文件的压缩和解压缩参数让人实在蛋疼, 本 ...

  3. Linux 各种压缩类型文件 解压命令 整理 tar.bz2 tar.gz tgz等等

    *.tar 使用 tar –xvf 解压 *.tar.gz和*.tgz 使用 tar –zxvf 解压 *.gz 使用 gzip -d或者gunzip 解压 *.bz2 使用 bzip2 -d 或者 ...

  4. Java批量高效压缩支持加解密支持所有压缩格式(Zip/7z/rar)

    前言:有时候需要对很多文件进行压缩,几个还好如果有100个呢对吧,为什么不借助咱们强大的java呢,所以我就写了一个可以批量压缩,支持所有压缩格式的工具类当然也支持加密和解密,下面就是工具类的代码 废 ...

  5. word保存为html不压缩图片大小,如何一键保存word文档中的图片?只需把.docx后缀改成压缩格式.zip即可 ......

    有时候我们在网上下载一篇Word文档,里面有很多张图片,我们想要将这些图片保存下来.如果是单张图片保存,我们可以选中图片,然后点击鼠标右键,选择[另存为图片]即可,如下图所示. 但如果是需要将所有图片 ...

  6. pandas 读取/保存压缩格式的csv文件.csv.gz

    保存 data.to_csv('data.csv.gz', compression='gzip', index=False) 读取 pd.read_csv('data.csv.gz', compres ...

  7. Linux下创建与解压zip, tar, tar.gz和tar.bz2文件及该文件压缩对比

    目前Linux下常见的压缩文件扩展名: *.Z compress程序压缩的文件(最早期使用),压缩后取代源文件: *.zip 一个夸平台的文件打包程序,适用于Linux.windows和Mac OS系 ...

  8. Linux下压缩、解压缩、效率,linux tar bz、bz2、gz、zip

    linux入门常用的指令中,属压缩解压缩最容易记混.现在来梳理一下: tar 参数使用: -v 显示操作过程(必加) -f 指定压缩文件(必加) -j 支持bzip2解压文件(bz.bz2后缀的文件) ...

  9. Linux:文件压缩解压gz、tar.gz、tar.xz、tar.bz2、tgz、zip

    目录 tar.tar.gz.tar.xz.tar.bz2.tgz gz zip tar.tar.gz.tar.xz.tar.bz2.tgz 1.压缩 tar -zcvf 压缩文件名.tar.gz 被压 ...

最新文章

  1. java标签多行_利用Arcade表达式显示多行标签
  2. win10子系统python_Win10子系统ubuntu
  3. jenkins 安装配置
  4. Windows Forms 实现安全的多线程详解
  5. HDU-2037 今年暑假不AC
  6. ci框架基础详解(入门学习)
  7. 基于巴法云平台的天猫精灵控制开关
  8. C# DataGridView 冻结列或行
  9. MT6573_FlashTool 下载的使用说明
  10. AngularJS笔记
  11. are in unnamed module of loader ‘app‘)“ }
  12. 右键文件夹一直转圈圈怎么办
  13. solr的copyFeild用法(改变各个feild的权重,修改打分结果)-注意!
  14. 蓝色巨人IBM(International Business Machines)
  15. 王家林老师Spark学习第一课
  16. css overflow
  17. 新天龙官网服务器更新消息,《经典怀旧·新天龙八部》8月5日全服更新维护公告...
  18. matlab中的isnan函数怎么用,matlab isnan用法
  19. 18位身份证包含的信息
  20. 关于get请求中文乱码的原因分析

热门文章

  1. leetcode 371. 两整数之和
  2. 如何传输音乐到手机上?方法很详细了
  3. PageOffice并发控制
  4. 【css】父div宽度固定,子div横向排列,排不下自动换行
  5. html控制页眉页脚,HTML到PDF解决方案(处理内容,页眉和页脚)
  6. css div边框倾斜_创建具有倾斜底边框的div
  7. JavaScript学习日记(一)【笔记】
  8. widows编写bat脚本,注销用户登录
  9. zzuli训练赛_05_13-K
  10. Echar渲染的图表与数据不匹配