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]# ls
etc group.Z
参数
-d 解压,相当于uncompress
-c 显示输出的至标准输出,不删除源文件
-v 显示详情
#显示标准输出重定向文件也可以压缩
[root@jumpserver test]# compress -c group >group.Z
[root@jumpserver test]# ls
etc group group.Z
3、gzip filename/gunzip
选项
[ ]
[ ]
etc f1.Z group.gz group.Z
[ ]
[ ]
etc f1.Z group group.Z
[ ]
[ ]
etc f1.Z group group.gz group.Z
4、bzip2 -k
#压缩
[root@jumpserver test]# bzip2 -k resolv.conf
[root@jumpserver test]# ls
resolv.conf resolv.conf.bz2
#解压缩
[root@jumpserver test]# bzip2 -d resolv.conf.bz2
[root@jumpserver test]# ls
resolv.conf
#查看压缩的文件
[root@jumpserver test]# bzcat resolv.conf.bz2
# Generated by NetworkManager
search openstacklocal
nameserver 127.0.0.1
5、xz
上诉压缩工具,只能对单个文件进行压缩,要对多个文件夹,或多个文件进行压缩,可以使用zip -r 命令进行压缩
6、zip
#对文件夹进行递归压缩,缺点压缩速度相对较慢
[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 计算命令执行的时间