一起来学linux:压缩与解压缩
Linux场景下一般存在如下的压缩文件格式:
1 .Z compress程序压缩的文件
2 *.gz gzip程序压缩的文件
3 *.bz2 bzip2程序压缩的文件
4 *.tar tar程序打包的文件。没有经过gzip的压缩
5 *.tar.gz tar程序打包的文件,经过gzip的压缩
6 *.tar.bz2 tar程序打包的文件,经过bz2的压缩
其中现在用得最多的就是gzip以及bzip2的方式,tar其实是讲所有的文件集中到一个文件夹里面,并么有提供压缩。
先来看下gzip的使用方式:
-c: 将压缩的数据输出到屏幕上,
-d:解压缩的参数
-t: 可以用来校验文件的一致性,查看文件是否有无错误
-v:显示出原始文件与压缩文件的压缩比
-#:压缩等级,从1到9,-9最慢
root@zhf-linux:/home/zhf/zhf# gzip -v python.vim
python.vim: 69.1% -- replaced with python.vim.gz
再来看下bzip2的命令:
-c: 将压缩过程产生的数据输出到屏幕上
-d:解压缩的参数
-k:保留原文件,而不会删除原始的文件
-z:压缩的参数
-v:显示压缩比
-#:压缩等级,从1到9,-9最慢
用法都和gzip差不多,但是有一个不同点在于,-k, 输入这个后可以保留原文件存在。gzip没有这个功能,压缩后原文件也被删除了
不管是gzip还是bzip2都只能对一个文件进行压缩,而不能对多个文件进行压缩。
root@zhf-linux:/home/zhf/zhf# gzip python_prj
gzip: python_prj is a directory – ignored
因此这里需要用到打包命令,先将不同的文件打包到一个文件夹里面然后进行压缩。tar的参数很多,主要介绍几个重要的
-c: 新建打包文件
-t:查看打包文件里面有那些文件
-x:解打包和解压缩的功能
-j:通过bzip2进行压缩/解压缩。文件名一般为 *.tar.bz2
-z:通过gzip进行压缩/解压缩.文件名一般为 *.tar.gz
-v:压缩和解压缩的过程中,将正在处理的文件名显示出来
-f:要被处理的文件名
-C:特定目录解压缩
-p:保留备份数据的权限与属性
命令如下, -f 首先是将要被压缩的文件名,然后是需要压缩的文件夹
root@zhf-linux:/home/zhf/zhf# tar -zpcv -f /home/zhf/zhf/test.tar.gz /home/zhf/zhf/test
tar: Removing leading `/' from member names
/home/zhf/zhf/test/
/home/zhf/zhf/test/test2/
同样查看的时候也可以看对对应文件里面的权限。
root@zhf-linux:/home/zhf/zhf# tar -ztv -f /home/zhf/zhf/test.tar.gz
drwxr-xr-x root/root 0 2017-08-28 21:34 home/zhf/zhf/test/
drwxr-xr-x root/root 0 2017-08-28 21:34 home/zhf/zhf/test/test2/
同样的如果想用bz2的方式,命令改成tar -jpcv -f /home/zhf/zhf/test.tar.gz /home/zhf/zhf/test和tar -jtv -f /home/zhf/zhf/test.tar.gz就可以了
对应的解压缩方式:或者是tar -jxvf test.tar.bz2
root@zhf-linux:/home/zhf/zhf# tar -zxvf test.tar.gz
home/zhf/zhf/test/
home/zhf/zhf/test/test2/
再来看另外一个命令dd。dd的主要作用在于备份文件或者是分区的内容:
比如备份一个文件
root@zhf-linux:/home/zhf/zhf# dd if=/home/zhf/zhf/test.txt of=/home/zhf/test.back
0+0 records in
0+0 records out
0 bytes copied, 0.000470738 s, 0.0 kB/s