压缩文件的用途与技术
什么是压缩:比如你的数据为『111….』共有100个1时, 那么压缩技术会记录为『100个1』。
(这只是一个简单的例子,事实上压缩比这个复杂)
我们知道,计算机中存储的都是1,0的数据,假如一个byte存了7个0和1个1,那么空间占用会比较大,通过压缩可以节省空间。压缩过的文件,想让系统所使用,一般需要进行“还原”,即解压缩。
Linux 系统常见的压缩命令
常见的压缩文件扩展名:
*.Z compress 程序压缩的文件;
*.gz gzip 程序压缩的文件;
*.bz2 bzip2 程序压缩的文件;
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
**注意,压缩命令通常仅能针对一个文件来压缩与解压缩,故常常需要进行打包(tar)
compress:比较老旧,几近被淘汰了。
gzip: 可以解开 compress, zip 与 gzip 等软件所压缩的文件。 gzip 所创建的压缩档为 *.gz。使用 gzip 进行压缩时,在默认的状态下原本的文件会被压缩成为 *.gz,原始文件就不再存在了。
zcat: 可以读取纯文字档被压缩后的压缩档,还可以读取 compress 与 gzip 的压缩档。
bzip2: 压缩比比gzip更高,用法几乎与gzip相同。压缩后可用bzcat读取数据而不需要解开。
打包命令: tar
虽然 gzip 与 bzip2 也能够针对目录来进行压缩, 不过,这两个命令对目录的压缩指的是『将目录内的所有文件 “分别” 进行压缩』的动作! 而不像在 Windows 的系统,可以使用类似 WinRAR 这一类的压缩软件来将好多数据『包成一个文件』的样式。
最简单的 tar 使用:
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
-c :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)
-t :察看打包文件的内容含有哪些档名
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
-j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
-z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
-p :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
-P :保留绝对路径,亦即允许备份数据中含有根目录存在之意
–exclude=FILE:在压缩的过程中,不要将 FILE 打包!
解开单一文件:tar -jxv -f 打包档.tar.bz2 待解开档名
tar -cvf - /etc | tar -xvf -:类似于 cp -r /etc /tmp
备份工具:dump
dump 命令可备份文件系统或单一目录
dump 的备份若针对文件系统时,可进行 0-9 的 level 差异备份!其中 level 0 为完整备份
还原工具:restore
可还原被 dump 建置的备份档
光盘写入工具
刻录的通常作法:
先将所需要备份的数据建置成为一个映像档(iso),利用 mkisofs 命令来处理;
将该映像档烧录至光盘或 DVD 当中,利用 cdrecord 命令来处理。
即:
mkisofs:创建映像档
cdrecord:光盘烧录工具
其他常见的压缩与备份工具
dd:可以用来备份整颗 partition 或 整颗 disk
cpio:可以备份任何东西,包括装置设备文件
必须要搭配类似 find 命令来读入欲备份的档名数据,方可进行备份动作