第2章 文件与目录管理
在Linux系统中,用户可以使用指令对文件和目录进行管理。例如,文件和目录的比较、连接、查找功能。最为重要的是通过这些指令可以修改文件和目录的时间、属性及其权限等。在本章中,将具体介绍这些管理命令的原型、参数及使用方法等。
2.1 diff指令:比较文本文件的差异
【语 法】diff [-abBcdefHilnNpPqrstTuvwy][-][-C][-D][-I][-S][-W ][-x][-X][--help][--left-column][--suppress- common-line][文件或目录1][文件或目录2]
【功能介绍】该指令可以对文本文件之间进行差异比较,并列出不同之处。
【参数说明】
参数
功能
-
指定要显示多少行的文本,该参数必须
与参数-c或-u一起使用
-a
将所有的文件均作为文本文件进行处理
-b
不检查文件中的空格字符
-B
不检查文件的空白行
-c
显示全部的文件内容,并标识出其不同之处
续表
参数
功能
-C
与参数-c、-含义相同
-d
使用不同的演算法,以较小的单位进行比较
-D
此参数的输出格式可以用于前置处理器巨集
-e
此参数的输出格式可以用于ed指令的script文件
-f
输出的格式类似于ed指令的script文件,
但按照原来文件的顺序显示不同处
-H
对大的文件进行比较时,可以加快其比较速度
-l
如果两个文件在某几行有不同,并且
这几行同时都包含了选项中指定的字符
或字符串,则不显示这两个文件的差异
-i
不检查文件数据的大小写不同
-n或-rcs
将比较结果以RCS的格式进行显示
-N
在比较目录时,如果文件1仅仅出现
在某个目录中,则默认显示“only in
目录名”。若比较文件1时,使用了
该参数,则diff指令将文件1与一个空
白文件进行比较
-p
如果比较的文件为C语言代码文件,
则将显示差异所在的函数名称
-P
与参数-N功能相似。但只有当目录2
中包含了目录1所没有的文件时,
才会将这个文件与空白的文件进行比较
-q
仅仅显示有无差异,并不显示详细的信息
-r
比较子目录中的文件
-s
如果没有发现任何差异,将仍然显示相关的信息
-S
在比较目录时,将从指定的文件开始比较
-t
在输出信息时,会将tab字符展开
-T
在每行前面都加上tab字符进行对齐
-u或-U
以合并的方式显示文件内容的不同
-v
显示版本信息
-w
忽略全部的空格字符
-W
在使用参数“-y”时,指定栏宽
续表
-x
不比较选项中所指定的文件或目录
-X
可以将文件或目录类型保存为文本文件
-y
以并列的方式显示文件的异同
--help
显示帮助信息
--left-column
在使用参数“-y”时,如果两个
文件的某一行内容相同,则只在左侧
的栏位中显示该行的内容
-- suppress-common-lines
在使用参数“-y”时,只显示其不同之处
【经验技巧】
diff指令是以逐行的方式,比较文本文件的异同处。
如果该指令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
【示例2-1】将目录"/usr/li"下的文件"test.txt"与当前目录下的文件"test.txt"进行比较,输入如下命令:
$ diff /usr/li test.txt #使用diff指令对文件进行比较
上面的命令执行后,会将比较后的不同之处以指定的形式列出,如下所示:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
其中,字母"a"、"d"、"c"分别表示添加、删除及修改操作。而"n1"、"n2"表示在文件1中的行号,"n3"、"n4"表示在文件2中的行号。
注意:以上说明指定了两个文件中不同处的行号及其相应的操作。在输出形式中,每一行后面将跟随受到影响的若干行。其中,以""开始的行属于文件2。
【相关指令】locate,diffstat
【责任编辑:book TEL:(010)68476606】
点赞 0