您的位置:首页 > 其它

常见的压缩归档工具

2016-03-17 15:45 225 查看
常用压缩工具原理:
因为1byte=8bit,一个字节等于8位二进制数,所以每个byte当中会有8个空格,而每个空格可以是0,1。如此以来我存储一个字符1,1会在最右边占据一个bit,而其它7个bit将会被自动被填上0。其实那7个bit应该是空的。为了满足我们操作系统对数据的访问,所以会将该数据转为byte的形态来记录。压缩即:利用一些复杂的计算方式,将没有使用到的空间丢出去,以让文件占用的空间变小。

另外一种方式:将重复的数据进行统计记录,例如你存储100个1,那么压缩技术会存储100个1,而不是真有100个1的位存在。这样也能够精简文件记录的容量。

常用压缩工具:
Compress:这个压缩命令是非常老旧的一款,大概只有在非常旧的unix机器上才能找到,所以在这里就不过多介绍啦。

gzip,gunzip,zcat:
gzip [-cdtv] 文件名

-c:将压缩的工具输出到屏幕上,可通过数据流重定向处理;

-d:解压缩的参数

-t:可以用来检验压缩文件的一致性,看看文件有无错误
-v:显示压缩过程的详细信息

-#:压缩等级-1最快,但是压缩比最差,-9最慢,但是压缩比最好,默认为6

gizp压缩文件后会默认删除原文件,-c重定向可以保留原文件到当前目录




gzip==gunzip,解压默认不保留压缩文件,通常情况下我不建议用gunzip因为有时候会与其他工具搞混


zcat:可以查看压缩文件中的内容





bzip2,bzcat,bzcat

bzip2 [-cdkzv#]文件名

-c:将压缩过程中产生的数据输出到屏幕上

-d:解压缩的参数

-k:保留原文件,而不会删除原始的文件

-z:压缩的参数

-v:可以显示出压缩过程详细信息

-#:与gizp一样,都是计算压缩比的参数

bzip2 + 文件 压缩默认删除原文件;
bzcat + 压缩包 可以查看压缩文件中的数据



bzip2 -d 解压默认删除压缩文件




xz,unxz,xzcat
xz [-dkv#]文件名
-d:解压缩,效果等同于unxz

-k:压缩保留原文件

-v:显示压缩过程详细信息

-#:同gizp可以设定压缩比,默认为6








tar归档工具:

tar [-jzcv][-f 新建的文件名]filename

-z:通过gizp的方式进行压缩/解压缩此文件名最好为*.gz

-j:通过bzip2的方式进行压缩/解压缩此文件名最好为*.bz2

-v:显示压缩/解压缩的过程
-C:在解压过程中,可以使用-C将其存入指定的目录中

-f:后面要接被处理的文件名。建议-f单独写一个参数

-x:解压缩的功能,可以配合-C在特定目录中解开

-t:查看打包文件的内容含有哪些文件名,重点查看文件名

-c:新建打包文件,可搭配-v来查看过程中被打包的文件名

-p:保留原文件权限与属性

-P:保留绝对路径,允许备份数据中有根目录存在

最简单的使用tar就只要记忆下面的方式即可:
bzip2压缩:tar -jcv -f file.tar.bz2 file1 file2...

bzip2解压:tar -jxv -f file.tar.bz2

bzip2查看:tar -jtv -f file.tar.bz2

解压重定向:tar -jxv -f file.tar.bz2 -C /tmp

gz压缩:tar -zcv -f file.tar.gz file1 file2...

gz解压:tar -zxv -f file.tar.gz

gz查看:tar -ztv -f file.tar.gz

dd:
功用:这个命令不只是制作一个文件而已。dd的最大功效在于“备份”。因为dd可以读取磁盘设备的内容(几乎是直接读取扇区),然后将整个设备备份成一个文件。

格式:dd if="input file" of="output file" bs="block size" count="number"

范例一:将/etc/passwd 备份到 /tmp/passwd.back当中
dd if=/etc/passwd of=/tmp/passwd.back
范例二:将/dev/sda1的第一个扇区备份下来(注:第一扇区就是MBR扇区)
dd if=/dev/sda1 of=/tmp/mbr.back bs=512 count=1
范例三:找出你系统最小的那个分区,并且将它备份下来;(我的是/dev/sda1)
dd if=/dev/sda1 of=/tmp/sda1.back

你可以说,tar可以用来备份关键数据,而dd则可以用来备份整块分区或整块磁盘,如果要将数据填回到文件系统当中,可能需要考虑到原本的文件系统才能成功。
实战练习:
将/etc/sda1 完整的复制到另一个分区上,请使用你的系统上面未分区完毕的空间再新建一个与/dev/sda1差不多大小的分区(只能比sda1大不能比它小)然后将之进行完整复制。
分析:由于需要复制启动扇区的区块,所以使用cp或者tar这种命令是无法完成需求的。

本文出自 “我动了谁的奶酪” 博客,请务必保留此出处http://wscto.blog.51cto.com/11249394/1752173
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: