vlambda博客
学习文章列表

3、Linux-基础命令篇、压缩打包工具

        在管理系统中,我们遇到经常会使用后缀为*.tar.gz |*.tar.bz2 等文件,他们是什么文件呢?请看下面介绍及使用方法

         

        压缩的原理,比如一个字符串"www.baidu.com" 在文件中出现了10万次,那么我们可以用一个字母来表现,比如用m,当让算法不同,所以压缩的机制也不同。


一、压缩工具


    1、file-roller 图形化压缩文件工具,和windows的类似。

    2、compress

#这个压缩工具,不指定参数的时候,会将源文件删除[root@jumpserver test]# yum -y install ncompress[root@jumpserver test]# compress group [root@jumpserver test]# lsetc  group.Z
参数 -d 解压,相当于uncompress -c 显示输出的至标准输出,不删除源文件                -v 显示详情 #显示标准输出重定向文件也可以压缩[root@jumpserver test]# compress -c group >group.Z[root@jumpserver test]# lsetc  group  group.Z

3、gzip filename/gunzip

        选项

        

#压缩[root@jumpserver test]# gzip group[root@jumpserver test]# lsetc f1.Z group.gz group.Z#解压缩[root@jumpserver test]# gzip -d group[root@jumpserver test]# lsetc f1.Z group group.Z#重定向压缩[root@jumpserver test]# gzip -c group >group.gz[root@jumpserver test]# lsetc  f1.Z  group  group.gz  group.Z

4、bzip2  -k

3、Linux-基础命令篇、压缩打包工具

#压缩[root@jumpserver test]# bzip2 -k resolv.conf [root@jumpserver test]# lsresolv.conf resolv.conf.bz2#解压缩[root@jumpserver test]# bzip2 -d resolv.conf.bz2 [root@jumpserver test]# lsresolv.conf#查看压缩的文件[root@jumpserver test]# bzcat resolv.conf.bz2 # Generated by NetworkManagersearch openstacklocalnameserver 127.0.0.1

5、xz

3、Linux-基础命令篇、压缩打包工具




上诉压缩工具,只能对单个文件进行压缩,要对多个文件夹,或多个文件进行压缩,可以使用zip -r 命令进行压缩

6、zip

3、Linux-基础命令篇、压缩打包工具

#对文件夹进行递归压缩,缺点压缩速度相对较慢[root@jumpserver test]# zip -r etc1.zip ./etc/adding: etc/selinux/targeted/active/modules/100/fetchmail/cil (stored 0%) adding: etc/selinux/targeted/active/modules/100/fetchmail/hll (deflated 10%) adding: etc/selinux/targeted/active/modules/100/fetchmail/lang_ext (stored 0%)#解压unzip etc1.zip


二、打包工具

        一般情况下,打包工具tar命令和压缩工具一起使用

tar 命令选项下面的选项是独立的,压缩或者解压都可以用到-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件   
下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
#下面为压缩的时候增加的选项参数-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出

用法:

         打包:tar  选项[-f]  包名  要打包的文件  

         解包:tar  xf 包名   [-C 指定解包的目录,不指定的时候为当前路径]

例如:#将当前所有的文件进行打包,取名为all.tar[root@jumpserver test]# tar cvf all.tar ./*#解包[root@jumpserver test]# tar xf all.tar#查看包里面的内容 [root@jumpserver test]# tar tf all.tar#追加文件到包里面[root@jumpserver test]# touch 111111111111111111111111111111111111111.txt[root@jumpserver test]# tar -rf all.tar 111111111111111111111111111111111111111.txt#查看尾部是否追加进去[root@jumpserver test]# tar -tf all.tar#打包并压缩gz后缀[root@jumpserver test]# tar zcvf all.tar.gz ./*#打包并压缩bz2后缀[root@jumpserver test]# tar jcvf all.tar.bz2 ./*
其中 后缀为*.tgz=*.tar.gz

三、包分割工具,当我们打包的时候这个文件很大,我们可以将其进行分割,分割成小文件    


#分割后再整合成一个包 -d 指定为数字,-b指定大小[root@jumpserver test]# split -d -b 10M all.tar.bz2 all.tar.bz2#合并成一个包,cat 一下重定向到一包里面就可以了[root@jumpserver all]# cat all.tar.bz2* > all.1.tar.bz2


四、cpio 命令 查看里面的内容


#预览内容[root@jumpserver test]# cpio -tv < initramfs-3.10.0-862.el7.x86_64.img 解压[root@jumpserver test] cpio -idv < initramfs-3.10.0-862.el7.x86_64.img#打包[root@jumpserver ~]# find ./ |cpio -ov > /root/test.cpio
zcat  xzcat #直接预览包里面的文件time 计算命令执行的时间