鸟哥linux——文件与文件系统的压缩,打包和备份
先说明一下压缩技术:
由于我们记录1,在字节中占据的是最右边的1,而其他7位为0.而工程师们利用复杂的算法,将这些7个0位"丢"出来换成了更有用的信息去占领。这就是压缩技术了。
另一种压缩技术是消除连续重复的数据,比如你有一个111...这样100个1,这种压缩直接把它表示为100个1这样的表示方法,而不是真的在内存中存在100个1的字节。
linux系统常用的压缩指令:
注意:linux的扩展名通常是没有什么用的。但是,一般压缩文件是需要扩展名的。
为什么linux的压缩文件需要扩展昵?因为,linux系统的压缩技术非常多,然而各个技术之间只能对自己压缩的文件进行解压,所以如果没有扩展名,就不知道这个文件到底是由那个技术压缩的。
需要一个插图:p420
注意:一般的压缩命令只能对一个文件进行压缩,但是tar可以对多个文件进行压缩,甚至是目录。
1.gzip指令:
在默认状态下原本的:文件会被压缩成.gz的文件名。目前gzip可以解开zip,compress和gzip等软件所压缩的文件。
2.bzip2指令:
:它的使用基本上和gzip一样
样例一:将文件a以bzip2压缩 bzip2 -v a 然后通过 ls -l a*就可以看到a.bz2文件了 样例二:将刚刚压缩的文件内容读出来 bzcat a.bz2 样例三:将压缩文件进行解压 bzip2 -d a.bz2 其实bzip2最大的优势就是它的压缩比非常好
3.xz指令:
用法与gzip一样,但是压缩比比bzip2还要好。但是,它花费的时间会非常长,所以,我们一般使用bzip2比较好。
4.打包指令:tar
以上的3个指令都可以对目录进行压缩,但是都是对这个目录下的文件进行分别压缩,生成的是很多压缩文件,而不是一个。但是tar文件却是生成一个压缩文件。
样例一:打包整个/etc文件
time tar -zpcv -f /root/etc.tar.gz /etc
注意:学习一下tar怎么解压单一的文件。
XFS文件系统的备份和还原
使用tar通常是针对目录树系统来进行备份的,但是对于整个文件系统进行储备和还原。就要用到sfddump和xfsrestore这两个工具了。
特别注意:xfsdump文件只支持文件系统的备份,并且不支持特定目录的备份,所以,你不能用它去备份/etc文件。因为,/etc不是一个完整的系统文件。
注意:xfsdump文件还可以进行累积备份。但是,你首先必须首先先备份一份,才可以后面的累积备份。累积备份,就像游戏,每次到一个关键的游戏点,备份一下你的游戏进度。避免,你在某进度上死掉之后,从新开始游戏。
xfsrestore是xfsdump的还原指令了。
其他常见的压缩与备份工具:
1.dd工具
dd可以进行压缩和备份功能,它可以读取磁盘设备的内容,然后将整个设备备份成一个文件。但是dd是没有分辩的去备份,比如它备份磁盘,他会把整个磁盘备份,也不管里面哪些有用哪些无用。