您的位置:首页 > 运维架构 > Linux

Linux学习第十八篇--文件的打包,解or压缩及备份

2017-06-22 16:07 381 查看

前言

今天一上午的时候都在玩linux(deepin),画面挺好看的,也挺好玩,沉迷于玩linux无法自拔...
于是,到下午的时候,才开始看书,还好的是这一章节的内容虽然很多,但是实际上能够用到命令占比却很低.因为有部分命令已经过时了,毕竟这本书是09年的嘛.都过了八年了.

文件的解压缩

压缩文件的目的?

关于压缩文件的目的好像没有啥好说的,顾名思义,就是把大文件变得小一点.比如我们有两个600M的文件,但是只有一个可用存储为1G的U盘,
这时候我们要怎么办,难道要删掉一部分数据吗,所以这时候就用到了压缩文件的技术.
那么压缩文件的技术是怎么实现的呢?他又不是海绵...
不,其实他就是海绵.目前我们计算机存储数据都是以bytes来作为计量单位,一个bytes含有八个bit.因为我们的计算机只能够识别二进制码,所以每个bit里面存放的是二进制值.
至于计算机如何将字符转换为二进制码,这涉及到文件编码操作,不再讨论范围内.
当我们存储某一字符的时候,他就会将该字符通过对应的文件编码转换成二进制存放到byte中,也就是转换成八个bit.
如果这个数据事实上只用了两个bit,那么剩余的bit将会被填充0,这些0就相当于海绵里的气泡,而压缩这个动作,就是通过复杂的计算来消除数据中这些无用的气泡.从而节省空间.
还有另一种压缩方法,他不会直接剔除这些气泡,而是转变计量的行为,比如原本的数据是00000001,压缩后则不是0000000而是7个0.

linux常见的压缩命令及其对应的后缀

我们知道在linux中文件的后缀并不会对文件产生影响,但是为了方面我们记忆和区分,往往我们还是会为文件添加后缀.

gzip命令

gzip命令用于压缩或者解压缩文件.他的使用格式是 gzip [选项] [文件]
gzip -c 可以将压缩的数据输出到屏幕上.
gzip -d 解压缩,目前gzip目录可以解压缩的文件后缀有.gz, -gz, .z, -z, _z 或  .Z.
gzip -f 强制压缩/解压缩
gzip -[数字] 根据指定的数字调整压缩速度其中1最快,但是压缩率最多,9最慢,但是压缩效率最高,默认值是6.
gzip -v 可以显示原始文件/压缩文件的压缩比.
gzip的选项不是很多,或者说很少,算是一个比较简单的命令.
gzip -t 检查压缩文件的完整性.
gzip -r 递归压缩.
gzip -n 在压缩的时候不保留原始文件名和时间信息
gzip -N 在压缩的时候保留原始文件名和时间信息
下面我们尝试使用一下这个命令.
不是我想用图片,而是代码块,显示出来有问题...我不知道要选择那种代码类型.





bzip2命令

bzip命令也是一个解or压缩的命令,它的压缩率较之gzip更强,因为他的存在就是为了取代gzip,所以bzip命令的使用方式类似gzip.
使用bzip命令生成的压缩文件后缀为.bz2
下面说一下他的选项.
bzip2 -c 将压缩的内容或者解压缩的内容输出到屏幕
bzip2 -d 强制解压缩.
bzip2 -z 强制进行压缩.
bzip2 -t 检查指定文件的完整性,但不会进行解压缩.
bzip2 -f 强制解压缩/压缩
bzip2 -k 在解压缩/压缩操作时,保留源文件
bzip2 -v 显示被处理文件的信息
bzip2 -[1-9]压缩效率

看这个命令主要多了个保留源文件和强制压缩.

文件的打包

刚才说的压缩命令只能针对单一文件进行压缩(可以通过一些手段,实现多文件压缩),那么我们能不能将一堆文件压缩成一个文件呢?
在linux中将多个文件变成一个文件的方式,被称为打包.
tar就是linux中用来打包或者展开文件的命令.
tar命令的使用格式是:tar [选项] [文件]
恕我直言,他的参数是真的多.大约能有二三十个,但是不要激动,我们不需要记那么多的.
我们只说一些比较常用的选项:
tar -c 建立打包的新的文档
tar -t 列出存档的文件目录
tar -u 仅将较新的文件更新到存档中
tar -x 解打包或者解压缩存档
上面这几个选项必选至少一个.
tar命令还有一些可选的选项,也非常有用
-C [目录]  将文件解包到指定的目录
-f   [文件 ] 指定解包的文件
-k 保留源文件
-P 不移除文件名的'/'
-y 用bzip2对打包的文件压缩解压缩
-z 用gzip对打包的文件压缩解压缩
-v 显示被处理的文件

举个例子,我们常用语解压包的命令 -zxvf file 
这个命令里面f必须是最后一个,因为他需要跟参数文件.
当然,还是比较推荐 tar -zxv -f file  这种格式.

(PS,我学完美化centos,满血归来了~这篇blog的前半部分,很早就写完了,但是因为去学定制linux,所以耽搁了几天....)

文件的备份

dump备份文件系统的命令.
等等...wait...



这是个什么情况?这就很尴尬了,我才刚习惯使用man命令.
戳我了解自定义的cman命令

而且.为啥我也没有dump命令!!!???
好吧,使用yum install -y dump.x86_64命令安装dump.
这样,我们就可以使用dump命令了,也可以使用man dump.
戳我查看dump的帮助手册

我看了一下这个文档,但是翻译的还是不全,英语不好的人泪崩~
dump命令的使用格式:dump [选项]  [-f 待备份文件] [备份文件的地址]
看一下dump命令的参数
-[0-9],数值0-9,备份文件的级别,当这个数值为0的时候,表示完全备份,但是当着数值大于0的时候表示增量备份.
-f [被备份的文件/设备],指定需要备份的文档/设备.
-S,显示待备份的数据需要的存储空间
-T 制定开始备份的时间和日期
-u,备份完成后,在/etc/dumpdates中记录备份的文件系统,层级,日期和时间等数据.
-W,列出在/etc/fstab里面具有dump设定的分区是否备份过(显示需要备份
ae51
文件最后一次备份的层级,时间,日期).
感觉这个命令挺有意思的哈...
但是需要注意的是这个命令一般用来备份文件系统,如果备份目录的话,他不能指定备份的级别,也不能保存备份文件的时间信息之类的...所以,你懂得...

restore命令用于恢复使用dump命令备份的文件或者文件系统.

restore [选项]  [-f 待恢复文件]
他的常用选项
-t 查看备份文件的内容
-C 将备份文件和当前文件比对,并展示出在备份中存在且和当前数据不一致的文件.
-i,进入互动模式,可以仅还原部分文件.
-r,将整个文件系统还原,用来还原针对文件系统的备份.
-D,与-C搭配,可以查看后面跟的挂载点和备份中数据不同的档案.

咳咳.这两个命令挺好玩的...但是,对于做开发的我来说,还是熟悉就好...不需要死记硬背,有这个概念,以后用到的时候再man就好了.
毕竟,选项辣么多...我的脑袋那么小...

其他好玩的命令

在linux中还有一个挺好玩的命令.

dd,别问我dd是哪几个单词的缩写.我找了很多资料也没找到...我能怎么办,我也很绝望啊.



看一下,dd命令的介绍,他就是用户转换和copy文件的.
他的常用参数很少
if=读取的文件
of=写入的文件123

bs=每次读取/写入的数据大小.默认512bytes
count读取数据的总量
一般用这个命令就是 dd if=被复制的文件 of=新文件 bs=每次读取数据大小 count=读取的次数

ok,搞定,收工!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: