bzip压缩命令在压缩一个大的文件的大致过程为首先将文件分为多个块,块的大小可以通过-1到-9来设置,然后对每个块分别进行压缩(-i表示i*100KB)。块的大小将直接影响命令在运行时对内存的占用量以及可能达到的压缩比。
bzip使用的算法为:Burrows-Wheeler块排序文本压缩算法,相比于gzip使用的LZ77算法能达到更高的压缩比,同时性能上接近于基于统计压缩器PPM系列压缩程序。
bzip2recover的功能就是将.bz2压缩文件的每个没有损坏的块抽取出来解压后单独放在一个文件中,文件的命名方式为rec00001filename.bz2 rec00002filename.bz2… bz2文件的块可以从其头部读取出来。然后我们一般可以使用bzip2 –dz rec*filename.bz2 > recovered_data,将能够恢复的数据存放于recovered_data。
bzip2recover对于传输多媒体文件,如图像,视频还是比较有用的。
bzip2recover就只有一个参数,即用于恢复的文件名称。
cat对应的英文单词为concatenate,即“连接”的含义。联想到string.h中的strcat函数。cat一般可以将文本文件的内容直接输出到标准输出上,同时可以用于连接输出多个文本文件。
如cat test1.c test2.c
cat命令常用的参数选项有以下几个。
l -n : 对输出的文本进行编号,编号出现在文本内容的最左侧
l -b:功能与-n类似也是对输出的文本行进行编号,但是对空行不编号
l -s:对于连续的两行以上的空白行合并为一个空白行
l -E:(show end)用于显示行结尾,如果行是以空白符号结尾的话,就不能确定行到底在哪儿结束。-E选项用于解决这个问题。在每行结尾出加上一个‘$’
l -v:使用^和M-来输出非打印字符。
l -h:显示帮助信息
l -T:使用 ^I 代替 “TAB”键
l -A:显示所有内容
用于改变文件或者目录的属性,使用lsattr可以列出当前目录下文件的属性。chattr设置属性的方法为使用三个操作符号:“+”,“-”,“=”。“+”表示对文件或者目录添加一个属性,“-”表示对文件删除一个属性,“=”表示将其他属性全部删除,仅保留用=号设置的属性。
文件属性的选项有:
‘A’ :如果A被设置的话,访问文件不会修改atime,即访问时间。这可以减少I/O访问次数
‘C’:如果C属性被设置的话,内核会自动压缩存储在磁盘上的文件。当访问文件时,内核会对访问部分的内容自动进行解压。即:读取数据时,内核负责解压,写入数据时,内核负责压缩。
‘D’:如果该属性被设置的话,对文件读写与该文件在磁盘上内容的变化时同步的。
‘d’:如果一个文件设置了该属性,那么dump程序执行的时候不用用该文件来作为备份数据的文件。
‘E’:不要使用
‘I’:不要使用
‘s’:如果文件’s’属性被删除,其块将被清零
还有一些其他参数,现在还没有用到,先不做笔记了。
另有一些选项:
-R:对文件夹递归的进行处理
-V:显示所有处理过程
此命令用于修改文件或者目录的组属性。有以下可选参数:
l -c:功能与-v(verbose)相同,但是仅在用户组属性发生改变的时候才输出信息,而不像verbose那样输出全部信息
l -h:不影响符号链接文件。默认是有—dereference选项的,也就是如果指定的文件为符号链接文件或者遍历的过程中遇到符号链接文件,那么要修改所链接的文件而不是符号链接文件本身。使用-h则相反,不修改所链接的文件,仅仅修改符号链接文件。
l -f:安静的执行,不要输出信息
l --reference=RFILE:并不是指定某个组的名称,而是使用某个文件的用户组属性作为目标文件的用户组属性
l -R:递归的处理目录下所有的文件
l -v:输出所有信息
l -H:如果遇到了一个符号链接文件,这个文件指向一个目录,那么遍历这个目录中所有的内容
l -L:遍历每一个链接到目录的符号链接
l -P:不要遍历任何符号链接
此命令用于修改文件的权限,对文件的操作者分为三类:文件的拥有者:usr,文件拥有者所在的组:group,以及其他所有人:others。简写为:u,g,o.另外还有a表示所有人。
文件可以执行的操作又分为三种:读(read)写(write)执行(execute),分别简写为r,w,x.对某个操作者赋予或者删除使用三种操作符号:+,-,=。
可用的参数有:-c,-f,-R,-v.
-c:表示发生改变时,报告处理信息
-f:表示错误信息不输出
-R:处理指定目录以及其子目录下的所有文件
-v:运行时显示详细信息
--version:显示版本信息
另外还可以使用数字对文件的权限进行设置,rwx的位置对应于二进制的位。所以chmod 755 test表示对于test文件,所有者用于读写执行的权限,小组用户以及其他所有人用于读和执行的权限。
本文出自 “相信并热爱着” 博客,转载请与作者联系!