首页 > 系统 > Linux > 正文

Linux必学60个命令文件处理(3)

2020-10-03 18:00:33
字体:
来源:转载
供稿:网友
接上一篇:《Linux必学的60个命令――文件处理(2)》

diff

1.作用

diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。

2.格式

diff [options] 源文件 目标文件

3.[options]主要参数

-a:将所有文件当作文本文件来处理。

-b:忽略空格造成的不同。

-B:忽略空行造成的不同。

-c:使用纲要输出格式。

-H:利用试探法加速对大文件的搜索。

-I:忽略大小写的变化。

-n --rcs:输出RCS格式。

cmp

1.作用

cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。

2.格式

cmp[options] 文件名

3.[options]主要参数

-l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。

cat

1.作用

cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。

2.格式

cat [options] 文件1 文件2……

3.[options]主要参数

-n:由第一行开始对所有输出的行数编号。

-b:和-n相似,只不过对于空白行不编号。

-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。

4.应用举例

(1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令:

$ cat README 

(2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中:

$ cat README INSTALL File1

(3)cat还有一个重要的功能就是可以对行进行编号,见图2所示。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。



图2 使用cat命令/etc/named.conf文件进行编号


对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:

$ cat -b /etc/named.conf

ln

1.作用

ln命令用来在文件之间创建链接,它的使用权限是所有用户。

2.格式

ln [options] 源文件 [链接名]

3.参数

-f:链结时先将源文件删除。

-d:允许系统管理者硬链结自己的目录。

-s:进行软链结(Symbolic Link)。

-b:将在链结时会被覆盖或删除的文件进行备份。

链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。

与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

动手联系

上面我们介绍了Linux文件处理命令,下面介绍几个实例,大家可以动手练习一下刚才讲过的命令。

1.利用符号链接快速访问关键目录

符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中。比如,Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也非常不容易记忆)。

为了解决这个问题,可以在主目录中创建一个符号链接,这样在需要进入该目录时,只需进入这个链接即可。

为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令:

$ ln -s /usr/local/httpd/htdocs gg

这样每次进入gg目录就可访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。

2.使用dd命令将init.rd格式的root.ram内容导入内存

dd if=/dev/fd0 of=floppy.fd

dd if=root.ram of=/dev/ram0 #

3.grep命令系统调用

grep是Linux/Unix中使用最广泛的命令之一,许多Linux系统内部都可以调用它。

(1)如果要查询目录列表中的目录,方法如下:

$ ls -l | grep '∧d'

(2)如果在一个目录中查询不包含目录的所有文件,方法如下:

$ ls -l | grep '∧[∧d]'

(3)用find命令调用grep,如所有C源代码中的“Chinput”,方法如下:

$find /ZhXwin -name *.c -exec grep -q -s Chinput {} ;-print
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表