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'
- 使用并列格式输出。