8.1 压缩文件的用途与技术
8.1.1为什么压缩文件?
- 节约磁盘空间
- 节约网络带宽
…
8.1.2 压缩文件的技术
技术一:将没有占用的空间填满,(节约了空间,但是不方便cpu读取)
技术二: 将重复的码 统计形式记录。
压缩后与压缩的文件所占用的磁盘空间大小, 就可以被称为是压缩比。
8.2 Linux 系统常见的压缩指令
linux下 压缩文件的扩展名
- *.Z:: compress 程序压缩的文件; 已经淘汰了。
现在常用的压缩技术:
- *.zip: zip 程序压缩的文件;
- *.gz: gzip 程序压缩的文件;
- *.bz2: bzip2 程序压缩的文件;
- *.xz: xz 程序压缩的文件;
打包后压缩:
- *.tar: tar 程序打包的数据,并没有压缩过;
- *.tar.gz: tar 程序打包的文件,其中并且经过 gzip 的压缩。gzip 代表GUN zip。
- *.tar.bz2: tar 程序打包的文件,其中并且经过 bzip2 的压缩
- *.tar.xz: tar 程序打包的文件,其中并且经过 xz 的压缩
这么多扩展名的目的是标识我们使用不同的程序进行压缩的。 另外tar 程序 是先将文件打包,后然后可以选择压缩,压缩使用的程序可以是4种技术中的一种。
8.2.1gzip 程序的常用命令
[dmtsai@study ~]$ gzip [-cdtv#] 文件名 //压缩文件
[dmtsai@study ~]$ zcat/zmore/zless 文件名.gz //读取文件
[dmtsai@study ~]$ gunzip 文件名.gz //解压缩文件 也可以用gzip -d
选项与参数:
-c :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
-d :解压缩的参数; 会将原本的压缩文件删除。
-t :可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v :可以显示出原文件/压缩文件案的压缩比等信息;
-# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 - -6
- 在预设的状态下原本的文件会被压缩成为 .gz 的档名,源文件就不再存在了。
- 使用这个程序压缩的软件可以被windows下 winrar 7zip 解压缩。
8.2.2bzip2 程序的常用命令
[dmtsai@study ~]$ bzip2 [-cdkzv#] 檔名
[dmtsai@study ~]$ bzcat 檔名.bz2
选项与参数:
-c :将压缩的过程产生的数据输出到屏幕上!
-d :解压缩的参数
-k :保留源文件,而不会删除原始的文件喔!
-z :压缩的参数 (默认值,可以不加)
-v :可以显示出原文件/压缩文件案的压缩比等信息;
-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
8.2.3 xz程序的常用命令
[dmtsai@study ~]$ xz [-dtlkc#] 檔名
[dmtsai@study ~]$ xcat 檔名.xz
选项与参数:
-c :同样的,就是将数据由屏幕上输出的意思!
-d :就是解压缩啊!
-t :测试压缩文件的完整性,看有没有错误-l :列出压缩文件的相关信息
-k :保留原本的文件不删除~
-# :同样的,也有较佳的压缩比的意思!
8.3 打包指令: tar
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 -jcv -f filename.tar.bz2 要被压缩的文件或目录名称 // 压 缩:
tar -jtv -f filename.tar.bz2 //查 询:
tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录 //解压缩: