您现在的位置是:首页 > 编程 > 

11.Linux文件管理命令

2025-07-27 20:49:25
11.Linux文件管理命令 diff比较两个文件作用:出两个文件的不同点。用法:diff 选项 源文件 目标文件主要选项如下。下面是 GU 所接受的 diff 所有选项的概要。大多数选项有两个相同的名字,一个是单个 地跟在“-”后面的字母,另一个是由“--”引出的长名字。多个单字母选项(除非它们产生歧 义)能够组合为单行的命令行语法,-ac 等同于 -a –c。长命名的选项能被缩短到它们的名

11.Linux文件管理命令

diff比较两个文件

作用:出两个文件的不同点。

用法:diff 选项 源文件 目标文件

主要选项如下。

下面是 GU 所接受的 diff 所有选项的概要。大多数选项有两个相同的名字,一个是单个 地跟在“-”后面的字母,另一个是由“--”引出的长名字。多个单字母选项(除非它们产生歧 义)能够组合为单行的命令行语法,-ac 等同于 -a –c。长命名的选项能被缩短到它们的名字的 任何唯一的前缀。用 和 括起来显示产生歧义的选项。

命令

描述

-行数(一个整数)

显示上下文行数(一个整数)。这个选项自身没有指 定输出格式,这是没有效果的,除非和-c 或者-u 组合使用。 这是已废置的选项,对于正确的操作,上下文至少要有两行

-a

所有的文件都视为文本文件来逐行比较,甚至它们似乎不是文本文件。

-b

忽略空格引起的变化。

-B

忽略插入、删除空行引起的变化。

--brief

仅报告文件是否相异,在乎差别的细节。

-c

使用上下文输出格式。

-C

行数(一个整数)。

--context[=lines]

使用上下文输出格式,显示以指定行数(一个整数),或者是三行(当 行数没有给出时)。对于正确的操作,上下文至少要有两行。

--changed-group-format=format

使用 format 输出一组包含两个文件的不同处的行,其格 式是 if-then-else。

-d

改变算法也许发现变化的一个更小的集合,这个选项会使 diff 命令执行速度变慢。

-D name

合并 if-then-else 格式输出,预处理宏(由 name 参数提供)条件。

-e,--ed

输出为一个有效的 ed 脚本。

--exclude=pattern

比较目录的时候,忽略和目录中与 pattern(样式)相匹配的。

--exclude-from=file

比较目录的时候,忽略和目录中与任何包含在 file(文件)中的样 式相匹配的文件和目录。

--expand-tabs

在输出时扩展 tab 为空格,保护输入文件的 tab 对齐方式。

-f

产生一个类似 ed 脚本的输出,但是它们在文件中出现的顺序有所改变。

-F regexp

在上下文和统一格式中,对于每一大块的不同, 显示出匹配 regexp.的一些前面的行。

--forward -ed

产生类似 ed 脚本的输出,但是它们在文件中出现的顺序有所改变。

-H

使用启发规则加速操作那些有许多离散的小差异的大文件。

--horizon-lines=lines

比较给定行数的有共同前缀的最后行,以及有共同后缀的最前行。

-i

忽略大小写。

-I regexp

忽略由插入或删除行(由 regexp 参数提供参考)带来的改变。

--ifdef=name

合并 if-then-else 格式输出,预处理宏(由 name 参数提供)条件。

--ignore-all-space

在比较行的时候忽略空白。

--ignore-blank-lines

忽略插入和删除空行。

--ignore-case

忽略大小写。

--ignore-matching-lines=regexp

忽略插入、删除行。

--ignore-space-change

忽略空白的数量。

--initial-tab

在文本行(无论是常规的还是格式化的前后文关系)前输出 tab 代替空格。 引起的原因是 tab 对齐方式看上去像是常规的一样。

-l

产生通过 pr 编码的输出。

-L label--label=label

使用 label 给出的字符在文件头代替文件名输出。

--left-column

以并列方式印出两个公共行的左边。

--line-format=format

使用 format 格式输出所有的行

--minimal

改变算法也许发现变化的一个更小的集合。这会使 diff 变慢(有时更慢)。

命令

描述

-n

输出 RC-格式 diffs;除了每条指令指定的行数受影响外,像-f 一样。

-

在比较目录时,若文件 A 仅出现在某个目录中,预设会显示 Only in 目录;文件 A 若使用- 参数,则 diff 会将文件 A 与一个空白的文件比较。

--new-file

在目录比较中,如果哪个文件只在其中的一个目录中到, 那么这个文件被视为在另一个目录中是一个空文件。

--new-group-format=format

使用 format 以 if-then-else 格式输出只在第二个 文件中取出的一个行组。

--new-line-format=format

使用 format 以 if-then-else 格式输出只在第二个文件中取出的一行。

--old-group-format=format

使用 format 以 if-then-else 格式输出只在第一个文件中取出的一个行组。

--old-line-format=format

使用 format 以 if-then-else 格式输出只在第一个文件中取出的一行。

-p

显示带有 c 函数的改变。

P

在目录比较中,如果哪个文件只在其中的一个目录中到, 那么它被视为在另一个目录中是一个空文件。

--paginate

产生通过 pr 编码的输出。

-q

仅报告文件是否相异,不报告详细的差异。

-r

当比较目录时,递归比较任何到的子目录。

--rcs

输出 RC-格式 diffs;除了每条指令指定的行数受影响外,像-f 一样。

--recursive

当比较目录时,递归比较任何到的子目录。

--report-identical-files

若没有发现任何差异,仍然显示信息。

-s

报告两个文件相同。

-S file

当比较目录时,由 file 开始。这用于继续中断了的比较。

--sdiff-merge-assist

打印附加的信息去帮助 sdiff.sdiff 在运行 diff 时使用这些选项。 这些选项不是特意为使用者直接使用而准备的。

--show-c-function

显示带有 c 函数的改变。

--show-function-line=regexp

在上下文和统一的格式,对于每一大块的差别,显示出匹配 regexp.的一些前面的行。

--side-by-side

使用并列的输出格式。

--speed-large-files

使用启发规则加速操作那些有许多离散的小差异的大文件。

--starting-file=file

当比较目录时,由 file 开始。这用于继续中断了的比较。

--suppress-common-lines

在并列格式中不打印出公共行。

-t

在输出时扩展 tab 为空格,保护输入文件的 tab 对齐方式。

-T

在文本行(无论是常规的还是格式化的前后文关系)前输出 tab 代替空格引起的原因是 tab 对齐方式看上去像是常规的一样。

--text

所有的文件都视为文本文件来逐行比较,甚至它们似乎不是文本文件

命令

描述

-u

使用统一的输出格式。

--unchanged-group-format=format

使用 format 输出两个文件的公共行组,其格式是if-then-else。

--unchanged-line-format=format

使用 format 输出两个文件的公共行,其格式是if-then-else。

--unidirectional-new-file

在目录比较中,如果哪个文件只在其中的一个目录中到,那 么它被视为在另一个目录中是一个空文件。

-U lines

以合并的方式来显示文件内容的不同。

--unified[=lines]

使用前后关系格式输出,显示指定行数(一个整数)或者三行(当行 数没有给出时)。对于正确的操作,上下文至少要有两行。

--version

输出 diff 版本号。

-w

在比较行时忽略空格。

-W columns

指定栏宽。

--width=columns

在并列格式输出时,使用指定的列宽。

-x pattern

比较目录的时候,忽略和目录中与 pattern(样式)相匹配的。

-X file

比较目录的时候,忽略和目录中与任何包含在 file(文件) 中的样式相匹配的文件和目录。

-y

使用并列格式输出。

练习案例

使用并排(side-by-side)用法查看文件差异,如图 2-5 所示。

这是两个相似却又有所不同的文件: 和 ,使用并排(side-by-side)用法 可以直观地比较源代码文件的差异。尽管出现了截行,还是可以非常清楚地显示两个文件的区别。-W 选项指定输出列的宽度。diff 接受这个宽度,并且分配给两个文件各 40 行。字符“>” 表示该行在目的文件中,字符“<”表示该行在源文件中,字符“|”标记出两个文件中不相同 的行。

注意

diff 以逐行的方式比较文本文件的异同处。如果源文件和目标文件都是目录,则diff 比较两个目录中相应的文件,按照字母次序排序。diff 的输出用法有 种,包括列举模式、命令模式和上下文模式,其中命令模式又分为两种,即 ed 命令模式和 RCS(Revision Control System,版本控制系统)命令模式

diffstat:diff 结果的统计信息

作用:读取 diff 的输出结果,然后统计各文件的插入、删除、修改等差异计量。

用法:diffstat选项

主要选项如下

命令

描述

-n<文件名长度>

指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名

p<文件名长度>

与-n 参数相同,但此处的<文件名长度>包括文件的路径。

-w

指定输出时栏位的宽度。

-V

显示版本信息

练习案例

比较两个文件,代码如下:

代码语言:bash复制
#diffstat   
0 files changed

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1203458.html

相关标签:无
上传时间: 2025-07-24 04:36:35
留言与评论(共有 7 条评论)
本站网友 痴想
10分钟前 发表
其格式是if-then-else
本站网友 美白嫩肤
17分钟前 发表
--ignore-matching-lines=regexp忽略插入
本站网友 草乌甲素
17分钟前 发表
--exclude=pattern 比较目录的时候
本站网友 股评天地
29分钟前 发表
还是可以非常清楚地显示两个文件的区别
本站网友 影集模板
21分钟前 发表
使用指定的列宽
本站网友 天津东北角艺术公寓
10分钟前 发表
--old-group-format=format 使用 format 以 if-then-else 格式输出只在第一个文件中取出的一个行组