8. Linux文档打包压缩

一、压缩技术解密

https://www.jianshu.com/p/7db19fbf8b11

  1. 目前计算机系统中都是用bytes(字节)单位来计量
  2. 事实上计算机最小的计量单位是bits(位)
  3. 1byte=8 bits
  4. 假设byte可以看成底下到模样

1 0 1 1 1 0 1 0

5.8个空格就是8个位,而每个空格可以是0或1,现在假设我们只存入了一个1,那会剩余到7个空位,默认情况下这7个空位无法在写入数据。
6.但压缩技术就是把这些没用到到空间提出来,以让档案占用到空间变小

二、常见压缩文件的扩展名

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 的压缩

常见命令工具

gzip, bzip2 以及 xz ,这些都只能对单个文件进行压缩,不能操作目录。

tar 可以对一个到多个文件或者一个目录进行打包成一个单一的文件,但单独使用 tar 命令时,只是打包,不压缩。

后来,GNU 计划中,将整个 tar 与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能!

gzip

gzip 压缩解压单个文件
压缩文件后,自动删除源文件, 自动添加 .gz 为扩展名
解压文件后,自动删除原压缩文件

gzip   [-vd]    file
选项和参数
-v   压缩时候显示压缩比
-d   解压
cp  /etc/services   /tmp

cd /tmp

压缩
gzip  -v    services

查看压缩文件的内容
zcat    services.gz

搜索压缩文件的关键字位置
zgrep blp5 services.gz

浏览压缩文件
zless   services.gz


解压
gzip   services.gz


压缩文件并保留源文件
gzip -c services > services.gz

bzip2

更好的压缩比,但是会占用相对多一些的时间
用法几乎和 gzip 一样

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

示例

压缩

bzip2   -v    services

查看压缩文件内容

bzcat    services.bg

bzless   services.bz2

解压
bzat  -d   services.bz2

xz 扩展

更高压缩比,相应的更长时间的耗费。
和前两个几乎一样的用法

xz   --help

tar

通用选项

-c  :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)
-t  :察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了;
-x  :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
      特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。

-v  :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
-f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项啰!(比较不会忘记)
-C 目录    :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

只打包,不压缩

创建
tar   -cvf   创建后的文件名.tar    文档1  文档2

查看包内的文件列表
tar   -tf    创建后的文件名.tar

解包到当前位置
tar   -xf    创建后的文件名.tar


解包到指定位置
tar   -xf    创建后的文件名.tar   -C    /tmp

打包后进行压缩

可以使用的选项

-z  :通过 gzip  的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
-j  :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
-J  :通过 xz    的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz
 以上 3 个 选项互斥


特别的

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

示例: 备份系统的配置文件,并且保留源文件的权限和属性信息

time tar -zpcv -f etc.tar.gz /etc

time 命令可以计算某个程序执行的时间

查看

查看压缩包的文件列表

tar -tf etc.tar.gz

解压

解压压缩包中的某一个文件

tar -xf etc.tar.gz  etc/sysctl.conf_bk

解压到指定目录

tar -xf etc.tar.gz   -C   /tmp

压缩的时候排除文档

打包压缩的时候可以排除一个或者多个文件或者目录

排除一个文件
tar  -jcv  -f   t.tar.bz2  d1  d2  --exclude=s1

排除多个文件
tar  -jcv   -f  t.tar.bz2  d1  d2  --exclude={s1,s2}

目录也可以
tar  -jcv  -f t.tar.bz2 d1 d2 --exclude=d1

zip

你可能感兴趣的:(8. Linux文档打包压缩)