一:压缩原理:
1:总述
目前使用的计算机系统,是使用字节单位来计量的;事实上,计算机最小的计量单位应该是位;一个字节等于八位;
由于我们记录的数字是1,考虑计算机的二进制,1会在最右边占据1位,而其他7位将会自动填上0,那7位应该是“空位”才对;利用一些复杂的计算方式,将这些没有使用到的空间“丢”出去,让文件占用的空间变小,这就是压缩技术;
简而言之,其实文件里面有相当多的“空间”存在,并不是完全填满的,而“压缩”技术就是将这些“空间”填满,以让整个文件占用的容量下降;
二:压缩命令:
1:compress
compress [-dcr] 文件或目录
-d:用来解压缩的参数;
-r:可以连同目录下的文件同时压缩;
-c:将压缩数据输出为标准输出(输出到屏幕):输出的是压缩过程;
2:gzip,zcat
gzip [-cdt#] 文件名
zcat 文件名.gz
-c:将压缩数据输出到屏幕上,可通过数据流充到向来处理;
-d:解压缩的参数;
-t:可以用来检验一个压缩文件的一致性,看文件有无错误;
-#:压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,默认是-6;
3:bzip2,bzcat
bzip2 [-cdz] 文件名
bzcat 文件名.bz2
-c:将压缩过程产生的数据输出到屏幕上。
-d:解压缩的参数;;
-z:压缩的参数;
-#:与gzip一样;
4:tar
tar [-cxtzjvfpPN] 文件与目录
-c:创建压缩文件的参数命令;
-x:解开压缩文件的参数命令;
-t:查看tarfile里的文件;
-z:是否同时具有gzip的属性?即是否需要用gzip解压或压缩?
-j:是否同时具有bzip2的属性?即是否需要用bzip2解压或压缩?
-v:显示解压或压缩的过程;
-f:目标文件名;注意在f之后要立即接文件名,不要再加参数;
-p:使用源文件的原来属性;
-P:使用绝对路径来压缩;
-N:比后面接的日期(YYYY/MM/DD)还要新的才会被打包进新建的文件中;
-C:制定解压到的目录;
注:在Linux系统中,常见的文件格式比较多,其中主要使用的是.tar或.tar.gz或.tar.bz2格式,我们不用担心格式太多而记不住,其实这些格式大部分都是由tar命令来生成的;
示例:
以Gzip格式压缩文件xxxx为xxxx.tar.gz:
tar -czvf xxxx.tar.gz xxxx
解开压缩文件xxxx.tar.gz到文件加xxxx:
tar -xzvf xxxx.tar.gz -C xxxx
5:dd
dd if="input_file" of="outptu_file" bs="block_size" count="number"
if:是输入文件,也可以是设备;
of:是输出文件,也可以是设备;
bs:规划的一个块的大小,如果没有设置时,默认是512字节;
count:多少个bs的意思;
注:tar可以用来备份关键数据,而dd可以用来备份整个分区或整个磁盘;
6:cpio:通过数据流重导向方法进行备份
cpio -covB > [file|device] <== 备份
cpio -icduv < [file|device] <==还原
-o:将数据复制输出到文件或设备;
-i:将数据从文件或设备复制到系统中;
-t:查看cpio建立的文件或设备的内容;
-c:一种较新的可移植格式的存储;
-v:让存储过程中文件名称可以在屏幕上显示;
-B:让默认的块可以增加到5120字节,默认512字节;
-d:自动建立目录;
-u:自动将较新的文件覆盖较旧的文件;