压缩打包介绍,gzip压缩工具,bzip2压缩工具,xz压缩工具,zip压缩工具,tar打包,打包并压缩

压缩打包介绍

  • 因为网络资源是有限的,机房服务器带宽很是昂贵
  • 怎样用合理的使用带宽是很重要的
  • 将文件压缩后,不管是存储仍是传输,既节省服务器空间,又节省带宽
  • 上图是目前主要的压缩格式
  • 在linux里面,虽然不像windows同样,文件后缀名有严格限制
  • 无论什么格式的文件,均可以自定义文件后缀
  • 可是这样不利于管理,也不方便与他人沟通交流使用
  • 因此仍是应该按照文件内容正确的格式来命名文件后缀

gzip 压缩工具

  • gzip是linux的一种压缩工具
  • 从上图能够看到,有一个叫作 1.txt 的文件,文件大小是3.1MB,有37860行
  • 如今使用 gzip 对1.txt进行压缩
  • 压缩命令就是 gzip 1.txt 回车就完成了
  • 而后使用 ls 查看当前目录
  • 1.txt文件消失了,出现了一个新的文件,叫作 1.txt.gz
  • 源文件被压缩后并重命名为了 1.txt.gz

  • 如上图,使用 gzip -d 1.txt.gz 命令把 1.txt.gz 文件进行了解压缩
  • 加上 -d 参数就能够对文件进行解压缩
  • 下面使用 ls 查看目录,发现 1.txt.gz 不见了,1.txt 又出现了
  • 1.txt.gz 被解压缩并重命名为了 1.txt

  • 解压缩后查看文件大小,发现只有 1.4MB ,压缩前有 3MB 左右
  • 由于原来的文件占用了不少虚的空间,压缩以后就把这些虚的空间消除掉了
  • 从新解压缩后消除掉的虚的空间并不会还原,因此文件大小仍是变小了
  • 查看文件行数,跟原来同样,仍是37860行,并无由于文件变小而减小行数

  • 使用 gzip -1 1.txt 从新压缩 1.txt 文件,其中 -1 表明压缩级别
  • gzip 的压缩级别是从 1 到 9 的,压缩级别越高,压缩的越小,可是须要使用的cpu资源越多
  • 若是不指定压缩级别,默认压缩级别是 6
  • 如今指定压缩级别为 1 ,能够看到,du查看文件大小,1.txt.gz 为396kb
  • 前面使用默认压缩级别 6 压缩以后文件大小是 344kb
  • 下降压缩级别后,压缩的文件就没有那么小了
  • 通常都是使用默认的级别,不须要调整大小

  • 除了 -d 参数能够解压缩外,也可使用 gunzip 来解压缩
  • 如上图,命令 gunzip 1.txt.gz 就能够解压缩 1.txt.gz

  • 可使用 file 1.txt.gz 查看文件信息
  • 能够看到,文件压缩方式是 gzip,压缩前的名字是1.txt,最后一次修改的时间,压缩级别是最大级别,此次用的是9级别压缩

  • 想查看压缩文件的内容,可使用 zcat 1.txt.gz 来查看1.txt.gz的内容
  • zcat 的工做原理就是先解压缩,而后再查看

  • 如今使用 -d 参数从新解压缩 1.txt.gz
  • 而后使用 -c 参数从新压缩 1.txt
  • gzip -c 1.txt > /tmp/1.txt.gz
  • 这个命令是把 1.txt 压缩到 /tmp 目录下面,并命名为 1.txt.gz
  • 可是源文件并不消失,能够看到,1.txt仍然存在,tmp目录下面多了一个1.txt.gz文件
  • 使用 -c 参数就能够制做源文件的压缩文件并存放在指定的位置
  • 这里就制做了一个源文件1.txt的压缩文件1.txt.gz并存放在/tmp目录下面

  • 如上图,gzip -d -c /tmp/1.txt.gz > /root/tmp/d6z/2.txt
  • 这个命令能够制做 /tmp/1.txt.gz 这个压缩文件的解压缩文件2.txt,并存放到/root/tmp/d6z目录
  • 其中 -d 表明解压缩功能,-c 能够不删除源文件,将制做好的文件放到指定位置
  • gzip 是不能压缩目录的,只能压缩文件

bzip2压缩工具

  • bzip2 能够比 gzip 压缩的更小一些,可是会耗费更多的cpu资源
  • 看上图,1.txt 大小是 1.4MB
  • 使用 bzip2 1.txt 压缩以后,用du查看,大小变成了 88kb
  • 以前使用gzip压缩后大小变成了300多kb
  • 因此bzip2能够将文件压缩得比gzip小不少

  • 可使用 bzip2 -d 1.txt.bz2 解压缩,跟gzip同样,使用-d参数解压缩
  • 而后从新压缩一次
  • 还可使用 bunzip2 1.txt.bz2 解压缩,跟gunzip差很少
  • bunzip2一样不能压缩目录

  • bzip2 一样可使用 -c 参数制做源文件的压缩文件重命名并存放在指定位置
  • bzip2 -c 1.txt > 1.txt.bz2 就制做了1.txt的压缩文件1.txt.bz2并存放在当前目录下
  • 如图,bzip2 一样可使用 -d -c 参数制做源文件的解压缩文件重命名并存放在指定位置
  • 这里就将 1.txt.bz2 的解压缩文件 3.txt 存放在当前目录下

  • bzip2 -9 1.txt 就能够指定压缩级别来压缩 1.txt
  • bzip2 的压缩级别也有9级,不过默认压缩级别就是9
  • 因此通常不须要指定压缩级别
  • 可使用 file 1.txt.bz2 来查看压缩文件信息
  • file命令能够用在不知道文件格式的时候,能够用file查看到格式信息

  • bzcat 能够查看用bzip2压缩的文件内容

xz压缩工具

  • 不是很是经常使用的压缩工具,用法与gzip和bzip2大致一致
  • xz 的压缩率比 gzip 和 bzip2 都高
  • 能够看到,xz压缩以后的文件大小,比gzip和bzip2压缩后的都要小
  • 如上图 xz -d 1.txt.xz 就能够解压缩 1.txt.xz 文件
  • unxz 1.txt.xz 也能够解压缩 1.txt.xz文件

  • xz -c 1.txt > 1.txt.xz 参数-c一样能够制做源文件的压缩文件重命名并制定存放位置
  • xz -d -c 1.txt.xz > 4.txt 也能够制做源文件的解压缩文件重命名并制定存放位置
  • 要读取xz压缩文件的内容,可使用 xzcat 1.txt.xz 来查看
  • xz 一样不支持压缩目录

zip 压缩工具

  • zip支持压缩目录功能
  • linux默认不支持windows的rar格式,须要下载工具才能解压缩rar
  • 使用 yum install -y zip 安装zip
  • 使用 yum install -y unzip 安装unzip
  • 使用命令 zip 2.txt.zip 2.txt
  • 就能够制做2.txt的zip压缩文件,不影响源文件,会出现一个新的zip压缩文件

  • 压缩目录,须要 -r 参数
  • zip -r tom.zip passwd d6z
  • 意思是,把 passwd 文件和 d6z 目录压缩成一个压缩文件 tom.zip

  • 使用 unzip tom.zip 解压这个压缩文件
  • 会出现询问,是否覆盖,由于使用zip压缩文件不会删除源文件
  • 有五个选项,这里选择 A 表明所有覆盖,而后回车
  • yes表明覆盖一个,no表明不覆盖
  • 由于zip文件里面有多个文件,若是不选择 All 那么每一个文件都会询问一次
  • unzip 一样能够指定目录,而后把压缩文件解压缩到目录里面,源文件不会消失
  • 如图,把tom.zip解压缩到tmp2目录
  • 可是只能指定目录,解压缩不能修改解压缩后的文件名
  • 前面三个工具均可以使用命令查看压缩文件内容,可是zip是不能查看内容的
  • 如图,zip只能查看压缩文件列表,不能查看内容,也就是说只能看里面有什么文件存在

tar打包工具

  • 服务器传输文件,若是目录文件太多,须要一个一个传输,会耗费不少时间
  • 若是把全部须要传输的文件打包成一个大文件,就能够节省不少时间
  • 并且用tar打包后可能减少总的空间大小
  • 由于每一个文件占用空间是用块计算的
  • 若是一个文件小于一个块,也会占用一个块的空间
  • 若是把这些文件打包在一块儿,那么文件会互相填满以前多余的空间
  • 因此有可能把本来多占用的块的空间节省出来
  • tar -cvf tom.tar tmp2/ 就能够将tmp2目录打包成tom.tar文件
  • 其中,-c 表明creat建立,打包文件时须要有的参数
  • 而 -v 表明可视化,能够看到打包过程打包了什么文件进去
  • 若是不须要看过程,能够不加 v
  • 参数 -f 也是必定要有,表明文件名,打包文件名前面必定要有f参数

  • 若是去掉 v 参数,从新打包一次,不会有任何提示
  • 新打包的文件会直接覆盖原来打包的文件

  • 如图,tar -xvf aminglinux.tar 就是解包命令
  • 参数 x 就是解包选项,v是可视化选项,f是文件名前面必须有的
  • 若是就在原来打包的目录解包
  • 解包出来的文件会直接把源文件覆盖掉,不会有任何提示

  • 如图,tar -tf aminglinux.tar 就能够查看打包文件的列表,看里面有什么文件
  • 查看列表的参数是 t ,f 是文件名前面必须有的

  • 如图,tar打包还支持过滤功能
  • tar -cvf aminglinux.tar --exclude aming1 --exclude "*.txt" aminglinux 3.txt 4.txt
  • 这条命令的意思是,首先把 aminglinux目录,3.txt,4.txt 三个目标打包在一块儿
  • 并命名为 aminglinux.tar
  • exclude选项的意思是,把这三个目标里面包含的 aming1目录过滤掉,aming1不会被打包进去
  • 第二个exclude 就是把全部 .txt 结尾的文件都过滤掉,也不会被打包进去

打包并压缩

  • tar打包的时候,是支持压缩的
  • 以前的压缩软件,均可以在这里使用
  • 这里 -czvf 就是在打包文件的同时压缩文件,z参数就是压缩选项
  • 这里参数 z 表示使用的是 gzip 压缩工具,因此打包文件名称应该加上 .gz
  • 这里 -cjvf 也是在打包的时候压缩文件,不过使用不一样的压缩工具
  • 参数 j 表明使用的压缩工具是 bzip2 ,因此压缩文件结尾要加上 .bz2
  • 这里 -cJvf 也是打包压缩文件,参数更换为大写的j
  • 参数 J 表示使用的工具是 xz ,因此文件结尾应该加上 .xz
  • 解包的时候只要把参数 c 换成 x 就好了
  • tar -tf 文件名 就能够查看文件列表
  • 无论使用哪一种工具压缩,或者没压缩,均可以使用 -tf 查看文件列表
相关文章
相关标签/搜索