文件打包压缩

2019-08-03  本文已影响0人  linux_python

1.目前计算机系统都是用bytes(字节)单位计量
2.事实上计算机的最小计量单位是bits(位)
3 . 1byte = 8bits

  1. byte 可以看作底下这样


    图片.png
  2. 8个空格就是8个位而每个空格可以是0或1,现在假设我们之存入了一个1,那会剩余到7个空位,默认情况下这7个位是不可以再写入数据。
  3. 但是压缩技术就是把这些没用到的空间提取出来,以让档案站用的空间变小。

下面说压缩技术

常见的压缩

  1. .zip zip程序
  2. .gz gzip程序
  3. .bz2 bzip2程序
  4. .xz xz程序
  5. .tar 打包 不压缩
  6. .tar.gz 打包 经过gzip压缩
  7. .tar.bz2 打包 经过bzip2压缩
  8. .tar.xz 打包 经过xz压缩

常见命令工具

gzip bzip2 xz 这些都只能对单个文件进行压缩,不能操作目录。
而tar打包可以对一个到多个文件或者一个目录打包成一个单一的文件,但单独使用tar命令时,只是打包不压缩。

gzip

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

gzip  [-vd] file
-v  压缩是显示压缩比例
-d  解压

gzip -v services
查看压缩文件内容
services.gz

搜索压缩文件关键字位置
zgrep '   '  services.gz
 
浏览压缩文件
zless

解压
gzip -d

bzip

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

-v显示解压/压缩的比例
-c将压缩过程产生的数据都输出到屏幕上
-d解压缩
-k保留原文件,不会删除原文件

示例

压缩
bzip2 -v services

查看压缩文件
bzcat service.bz2
bzless service.bz2

解压
bzip2 -d services.bz2

打包压缩tar

-c 创建打包文件,可搭配-v来查看打包过程中被打包的文件名
-t 查看打包文件的文件名,重点在查看"文件名"
-x 解压缩和解打包的功能,可以搭配 -C(大写)
在特定的目录解开,特别留意的是 -c -t -x不可同时出现在一串命令中


-v  压缩/解压过程中将文件名显示出来。
-f filename:-f 后面要接文件名,建议-f单独写一个选项
-c 目录 : 解压缩到特定的目录

只打包不压缩

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

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

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

打包后进行压缩

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


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

解压包中的某一个文件

tar -xf 文件  位置

解压到指定目录

tar -xf 文件  -C 目录 

压缩的时候排除一个或者文件或者目录

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

排除多个文件
tar -jcvf  t.tar.bz2 d1 d2 --exclude={s1,s2}
目录也可以
tar -jcvf t.tar.bz2 d1 d2 --exclude=d1
上一篇下一篇

猜你喜欢

热点阅读