下一个: , 上层: diff


A.11.1 diff 示例

diff 支持标准选项(参阅 Common options,了解完整说明):

-D date
使用不迟于 date 的最新修订版。见 `-r' 了解它是如何影响比较的。
-k kflag
根据 kflag 处理关键字。参阅 Keyword substitution
-l
只在当前目录运行。
-R
递归方式检验。此为默认。
-r tag[:date]
比较指定的 tag 修订版,或者当 date 指定,并且 tag 是分支标签, 分支 tag 上的版本可以当作是在 date 上。 可以没有,有一个或两个 `-r' 选项。没有 `-r' 选项时,工作文件将与它所基于的修订版进行比较。有一个 `-r' 选项时,指定的 修订版与当前工作文件进行比较。两个 `-r' 选项时,将比较这两个修订版(同时 你的工作文件不会影响输出结果)。

一个或所有的 `-r' 选项都能用上面提到的 `-D date' 选项替代。

下面的选项指定输出的格式。他们与 GNU diff 有相同的意思。许多选项有两个相等的 名字,一个是 `-' 后面的单个字母,另一个是 `--' 后面的长名字。

`-lines'
显示上下文 lines (一个整数) 行。此选项不指定输出的格式; 如不与 `-c' 或 `-u' 一起使用,没有任何作用。该选项已经废弃。对适当操作,patch 通常至少要两行内容。
`-a'
所有的文件都视为文本文件来逐行比较,甚至他们似乎不是文本文件。
`-b'
忽略空格引起的变化,并认为一个或多个空格都相同。
`-B'
忽略插入删除空行引起的变化。
`--binary'
以二进制模式读写数据。
`--brief'
仅报告文件是否相异,不在乎差别的细节。
`-c'
使用上下文输出格式。
`-C lines'
`--context[=lines]'
使用上下文输出格式,显示以指定 lines (一个整数),或者当 lines 没有给出时是三行。对于正确的操作,patch 需要上下文至少要有两行。
`--changed-group-format=format'
使用 format 输出一组包含两个文件的不同处的行,其格式是 if-then-else。 参阅 Line group formats.
`-d'
改变算法也许发现变化的一个更小的集合。这会使 diff 变慢 (有时很慢)。
`-e'
`--ed'
输出为一个有效的 ed 脚本。
`--expand-tabs'
在输出时扩展制表符为空格,保持输入文件的制表符对齐方式。
`-f'
产生一个类似 ed 脚本的输出,但是改变他们在文件出现的顺序。
`-F regexp'
在上下文和统一格式中,对于每一大块的不同,显示出匹配 regexp 的一些前面 的行。
`--forward-ed'
产生象 ed 脚本的输出,但是它们在文件出现的顺序有改变。
`-H'
使用启发规则加速操作那些有许多离散的小差异的大文件。
`--horizon-lines=lines'
比较给定 lines 的有共同前缀的最后行,和有共同或缀的最前 lines 行。
`-i'
忽略大小写; 认为大小写字母是相同的。
`-I regexp'
忽略因匹配 regexp 而插入,删除行带来的改变。
`--ifdef=name'
合并使用 name 的 if-then-else 格式输出。
`--ignore-all-space'
在比较行的时候忽略空格。
`--ignore-blank-lines'
忽略插入和删除空行。
`--ignore-case'
忽略大小写; 认为大小写字母是相同的。
`--ignore-matching-lines=regexp'
忽略因匹配 regexp 而插入,删除行带来的改变。
`--ignore-space-change'
忽略后面的空格,并认为所有的单个与多个空格是相同的。
`--initial-tab'
无论是常规的或者格式化的前后文关系,在文本行前输出制表符代替空格。使制表符对齐 方式看上去象是常规的一样。
`-L label'
使用 label 给出的字符替代文件头里面上下文和统一格式的文件名。
`--label=label'
使用 label 给出的字符替代文件头里面上下文和统一格式的文件名。
`--left-column'
以并列方式印出两公共行的左边。
`--line-format=format'
使用 format 输出 if-then-else 格式所有的行。参阅 Line formats.
`--minimal'
改变算法也许发现变更的一个更小的集合。这会使 diff 变慢 (有时很慢)。
`-n'
输出 RCS 格式的比较; 除了每条指令指定的行数受影响外像 `-f' 一样。
`-N'
`--new-file'
在目录比较中,如果那个文件只在其中的一个目录中找到,那么它被视为在另一个目录中 是一个空文件。
`--new-group-format=format'
使用 format 以 if-then-else 格式输出只在第二个文件中取出的一个行组。 参阅 Line group formats.
`--new-line-format=format'
使用 format 以 if-then-else 格式输出只在第二个文件中取出的一行。 参阅 Line formats.
`--old-group-format=format'
使用 format 以 if-then-else 格式输出只在第一个文件中取出的一个行组。 参阅 Line group formats.
`--old-line-format=format'
使用 format 以 if-then-else 格式输出只在第一个文件中取出的一行。 参阅 Line formats.
`-p'
显示带有 C 函数的改变。
`--rcs'
输出 RCS 格式的比较; 除了每条指令指定的行数受影响外像 `-f' 一样。
`--report-identical-files'
`-s'
当两个文件相同时报告。
`--show-c-function'
显示带有 C 函数的改变。
`--show-function-line=regexp'
在上下文和统一的格式,对于每一大块的差别,显示出匹配 regexp 的一些前面的行。
`--side-by-side'
使用并列的输出格式。
`--speed-large-files'
使用启发规则加速操作那些有许多离散的小差异的大文件。
`--suppress-common-lines'
在并列格式中不印出公共行。
`-t'
在输出时扩展制表符为空格,保护输入文件的制表符对齐方式。
`-T'
无论是常规的或者格式化的前后文关系,在文本行前输出制表符代替空格。使得制表符 对齐方式看上去象是常规的一样。
`--text'
所有的文件都视为文本文件来逐行比较,甚至他们似乎不是文本文件。
`-u'
使用统一的输出格式。
`--unchanged-group-format=format'
使用 format 输出两个文件的公共行组,其格式是 if-then-else。 参阅 Line group formats.
`--unchanged-line-format=format'
使用 format 输出两个文件的公共行,其格式是 if-then-else。 参阅 Line formats.
`-U lines'
`--unified[=lines]'
使用统一输出,显示以指定 lines (一个整数), 或者当 lines 没有给出时 是三行。对于正确的操作,patch 典型地至少要有两行。
`-w'
在比较行时忽略空格。
`-W columns'
`--width=columns'
在并列格式输出时,使用指定的 columns
`-y'
使用并列格式输出。