Linux文件压缩/打包解压缩命令

常见的打包/压缩格式

因为Linux 支援的压缩指令非常多,且不同的指令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件。所以,当你下载某个压缩文件时,自然就需要知道该文件是由哪种压缩指令所创建出来的,好用来对照着解压。

*.Z  compress程序压缩的文件;
*.zip  zip程序压缩的文件;
*.gz  gzip程序压缩的文件;
*.bz2  bzip2程序压缩的文件;
*.xz  xz程序压缩的文件;
*.tar  tar程序打包的文件,并没有压缩过;
*.tar.gz  tar程序打包的文件,其中并且经过gzip 的压缩
*.tar.bz2  tar程序打包的文件,其中并且经过bzip2 的压缩
*.tar.xz  tar程序打包的文件,其中并且经过xz 的压缩

Linux上常见的压缩指令就是gzip, bzip2以及最新的xz ,至于compress已经退流行了。为了支持windows常见的zip,其实Linux也早就有zip指令了。不过,这些指令通常仅能针对一个文件来压缩与解压缩。

虽然gzip, bzip2, xz也能够针对目录(文件夹)来进行压缩,不过,这几个指令对目录的压缩指的是『将目录内的所有文件"分别"进行压缩』的动作!而不像在Windows的系统,可以使用类似WinRAR这一类的压缩软件来将好多资料『包成一个文件』的样式。

这种将多个文件或目录包成一个大档案的指令功能,我们可以称呼他是一种『打包指令』。tar 可以将多个目录或档案打包成一个大档案,同时还可以透过gzip/bzip2/xz 的支援,将该档案同时进行压缩!更有趣的是,由于tar 的使用太广泛了,目前Windows 的WinRAR 也支援.tar.gz 档名的解压缩。(单纯的tar功能仅是打包而已,即将很多文件集结成为一个文件,事实上,他并没有提供压缩的功能,后来,GUN计划中,将整个tar与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能。)

常见的压缩指令

gzip, zcat/zmore/zless/zgrep

gzip 可以说是应用度最广的压缩指令了!目前gzip 可以解开compress, zip 与gzip 等软件所压缩的档案。gzip 所创建的压缩文件拓展名为*.gz 。

[dmtsai@study ~]$ gzip [-cdtv#] 文件名
[dmtsai@study ~]$ zcat 文件名.gz 
选项与参数:
-c :将压缩的资料输出到萤幕上,可透过数据流重导向来处理;
-d :解压缩的参数;
-t :可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v :可以显示出原文件/压缩文件的压缩比等信息;
-# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是-6

当你使用gzip进行压缩时,在预设的状态下原本的文件会被压缩成为.gz的文件名,原文件就不再存在了。这点与一般习惯使用windows做压缩的朋友所熟悉的情况不同!要注意!要注意!此外,使用gzip压缩的档案在Windows系统中,竟然可以被WinRAR/7zip这个软件解压缩!

cat/more/less 可以使用不同的方式来读取纯文本文件,那zcat/zmore/zless 则可以对应于cat/more/less 的方式来读取纯文本文件被压缩后的压缩文件!由于gzip 这个压缩指令主要想要用来取代compress 的,所以不但compress 的压缩文件可以使用 gzip 来解开,同时zcat 这个指令可以同时读取compress 与gzip 的压缩文件。

另外,如果你还想要从文本文件当中找资料的话,可以透过zgrep 来搜寻关键字喔!而不需要将压缩档解开才以grep 进行!这对查询备份中的文字档资料相当有用!

bzip2, bzcat/bzmore/bzless/nzgrep

若说gzip 是为了取代compress 并提供更好的压缩比而成立的,那么bzip2 则是为了取代gzip 并提供更佳的压缩比而来的。bzip2 的用法几乎与gzip 相同。 

[dmtsai@study ~]$ bzip2 [-cdkzv#] 文件名
[dmtsai@study ~]$ bzcat 文件名.bz2 
选项与参数:
-c :将压缩的过程产生的数据输出到萤幕上!
-d :解压缩的参数
-k :保留原始文件,而不会删除原始的文件喔!
-z :压缩的参数(预设值,可以不加)
-v :可以显示出原档案/压缩档案的压缩比等信息;
-# :与gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

    xz, xzcat/xzmore/xzless/xzgrep

虽然bzip2 已经具有很棒的压缩比,不过显然某些自由软件开发者还不满足,因此后来还推出了xz 这个压缩比更高的软件!这个软件的用法也跟gzip/bzip2 几乎一模一样。

[dmtsai@study ~]$ xz [-dtlkc#] 文件名 
[dmtsai@study ~]$ xzcat 文件名.xz 
选项与参数:
-d :就是解压缩啊!
-t :测试压缩文件的完整性,看有没有错误
-l :列出压缩文件的相关资讯
-k :保留原本的文件不删除~
-c :同样的,就是将数据由萤幕上输出的意思!
-# :同样的,也有较佳的压缩比的意思!

常见的打包指令:tar

tar

tar 的选项与参数非常的多!我们只讲几个常用的选项,更多选项您可以自行man tar 查询。

[dmtsai@study ~]$ tar [-z|-j|-J] [cv] [-f 待建立的新文件名] filename...  <==打包与压缩 
[dmtsai@study ~]$ tar [-z|-j|-J] [tv] [-f 既有的tar文件名]              <==察看文件名 
[dmtsai@study ~]$ tar [-z|-j|-J] [xv] [ -f 既有的tar文件名] [-C目录]    <==解压缩
选项与参数:
-c :建立打包文件,可搭配-v 来察看过程中被打包的文件名(filename)
-t :察看打包文件的内容含有哪些文件名,重点在察看『文件名』;
-x :解打包或解压缩的功能,可以搭配-C (大写) 在特定目录解开
      特别留意的是, -c, -t, -x 不可同时出现在一串指令列中。
-z :透过gzip 的支援进行压缩/解压缩:此时文件名最好为*.tar.gz
-j :透过bzip2 的支援进行压缩/解压缩:此时文件名最好为*.tar.bz2
-J :透过xz 的支援进行压缩/解压缩:此时文件名最好为*.tar.xz
      特别留意, -z, -j, -J 不可以同时出现在一串指令列中
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
-f filename:-f 后面要立刻接要被处理的文件名!建议-f 单独写一个选项啰!(比较不会忘记)
-C 目录:这个选项用在解压缩,若要解压到特定目录,可以使用这个选项。

-p(小写) :保留备份资料的原本权限与属性,常用于备份(-c)重要的设定档
-P(大写) :保留绝对路径,亦即允许备份资料中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将FILE 打包! 

其实最简单的使用tar 就只要记忆下面的方式即可:

压缩:tar -j c v -f filename.tar.bz2 要被压缩的文件或目录名称
查询:tar -j t v -f filename.tar.bz2
解压缩:tar -j x v -f filename.tar.bz2 -C 欲解压缩的目录

如果不加[-z|-j|-J] 的话,文件名最好取为*.tar 即可。如果是-j 选项,代表有 bzip2 的支援,因此文件名最好就取为*.tar.bz2 ,因为bzip2 会产生.bz2 的扩展名之故!

另外,由于『 -f filename 』是紧接在一起的,过去很多文章常会写成『-jcvf filename』,这样是对的, 但由于选项的顺序理论上是可以变换的,所以很多读者会误认为『 -jvfc filename』也可以~事实上这样会导致产生的文件名变成c !因为-fc 嘛!所以啰,建议您在学习tar 时,将『 -f filename 』与其他选项独立出来,会比较不容易发生问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值