aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/diff.1
blob: 3d33c65cbc429e7a73b74f9ec10f7785926ee626 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
.TH DIFF 1 "22sep1993" "GNU Tools" "GNU Tools"
.\" jpman %Id: diff.1,v 1.3 1997/05/16 00:15:44 h-nokubi Stab %
.SH 名称
diff \- 2 つのテキストファイルの間の差を求める
.SH 書式
.B diff
[options] from-file to-file
.SH 解説
.I diff
の最も単純な使用方法は、
.I from-file
と
.I to-file
の 2 つのファイルを指定することです。
この場合、
.I diff
は、その 2 つのファイルの内容を比較します。ファイル名
として、`-' を指定した場合は、標準入力から読み込みを行ないます。
特殊な場合として、
.B "diff \- \-"
は標準入力をそれ自身と比較します。
.PP
もし、
.I from-file
としてディレクトリを指定し
.I to-file
がディレクトリでなかった場合、
.I diff
は
.I to-file
で指定したファイル名と同じ名前のファイルを
.I from-file
のディレクトリから捜して、そのファイルとの間で比較を行ないます。
その逆に、
.I to-file
がディレクトリで
.I from-file
がディレクトリでない場合も、同様に処理します。なお、
ディレクトリでない方のファイルに `-' を指定することはできません。
.PP
.I from_file
と
.I to_file
の両方がディレクトリだった場合、
.I diff
は、両方のディレクトリ内でファイル名が同じファイル同士をアルファベット順に
比較していきます。この時、
.B \-r
もしくは、
.B \-\-recursive
オプションが指定されていれば、
サブディレクトリの中のファイルも再帰的に比較していきます。
.I diff
は、ディレクトリの実際の中身をファイルのように比較しません。標準入力は名前
が無く``同じ名前を持ったファイル''の概念が適用できないので、
完全指定したファイルは標準入力であってはなりません。
.PP
.B diff
のオプションは 
.BR \-
で始まります。よって通常
.I from_file
と
.I to_file
は 
.BR \-
で始まりません。しかしながらそれ自体が引数である
.B \-\- 
の後では、 残された引数が 
.BR \- 
で始まっていてもファイル名として扱います。
.SS オプション
GNU
.I diff
のすべてのオプションの要約は以下の通りです。ほとんどのオプション
は2つの同等な名前を持ちます。1つは 
.BR \-
で始まる1文字の名前で、もう1つは、
.BR \-\-
で始まる長い名前です。複数の1文字のオプション(引数を持たない場合)は、
1つの文字列にまとめてしまって構いません。つまり
.B \-ac
は
.B "\-a \-c"
と同等です。長い名前のオプションはその名前の接頭辞が一意的に決まればどんな
省略でもできます。鍵括弧
.RB ( [
と
.BR ] )
は、オプションが省略可能な引数を持つことを示します。
.PP
.TP
.BI \- lines
.B \-c
か
.B \-u
と組み合わせて、相違点の前後(context)の表示行数を `数字'
で指定します。このオプションだけでは、出力フォーマットは変化しません。
このオプションは旧式(obsolete)です。
.I patch
をうまく働かせるためには、少なくとも前後 2 行ずつは必要です。
.TP
.\" 以下では、同等な1文字オプションと長い単語のオプションが
.\" まとめて表示されるようにアレンジされ直されている。
.B \-a
.br
.ns
.TP
.B \-\-text
テキストファイルでないようなものについても、全てのファイルを
テキストとみなして、1 行づつ比較していきます。
.TP
.B \-b
.br
.ns
.TP
.B \-\-ignore\-space\-change
空白の数の違いを無視します。
.TP
.B \-B
.br
.ns
.TP
.B \-\-ignore\-blank\-lines
空行が入っているもしくは足りないなどの違いは無視します。
.TP
.B \-\-brief
.br
.ns
.TP
.B \-q
ファイルの違いの詳細は表示せず、違っているかどうかだけを報告します。
.TP
.B \-c
``context output format'' を使用します。
.\" これは、patch コマンドに
.\" 適した形式で、違っている行だけでなく、その前後も数行出力する形式で
.\" す。デフォルトでは 3 行づつ表示します。行数を変えるには、`-行数'オ
.\" プションを使うか、次のオプションを使用します。
.TP
.BI "\-C " 行数
.br
.ns
.TP
.BI \-\-context[= 行数 ]
``context output format'' を使用します。不一致の行の前後に、`行数'
で指定した行数だけ表示します (context) 。
.I patch
をうまく働かせるためには、少なくとも 2 行の context が必要です。
.TP
.BI \-\-changed\-group\-format= format
if-then-else 形式の両方のファイルから異なった行を含む部分を出力する
ために
.I format
を使う。
.TP
.B \-d
.br
.ns
.TP
.BI \-\-minimal
より小さな違いを見つけるアルゴリズムに変更します。このオプションを
指定すると
.I diff
の処理速度は遅くなります(かなり遅くなることもあります)。
.TP
.BI "\-D " name
.br
.ns
.TP
.BI \-\-ifdef= name
プリプロセッサマクロ
.I name
の条件記述を用いた if-then-else 形式にマージして出力します。
.TP
.B -e
.br
.ns
.TP
.B \-\-ed
.I ed
のスクリプトの形式で出力します。
.TP
.BI \-\-exclude= pattern
.br
.ns
.TP
.BI "\-x " pattern
ディレクトリ単位の比較の時、ファイルやディレクトリ名が
.I pattern
にマッチした場合は、比較しないようにします。
.TP
.BI \-\-exclude\-from= file
.br
.ns
.TP
.BI "\-X " file
ディレクトリ単位の比較の時、ファイルやディレクトリ名が
.I file
の中に含まれる pattern にマッチした場合は、比較しないようにします。
.TP
.B \-\-expand\-tabs
.br
.ns
.TP
.B \-t
入力ファイルのタブによる位置調整をくずさないよう、タブを空白に展開します。
.TP
.B \-f
.br
.ns
.TP
.B \-\-forward\-ed
.B ed
のスクリプトと一見同じような出力をします。ただし、ファイルに
現われる順序が違います。
.TP
.BI "\-F " regexp
.br
.ns
.TP
.BI \-\-show\-function\-line= regexp
context diff 形式および unified diff 形式において、差分のブロック毎に、
差分のブロックに先行し、かつ
.I regexp
にマッチする行のうちでもっともブロックに近い行を出力します。
.TP
.B \-h
なにも機能はありません。通常の UNIX の diff との互換のためにあります。
.TP
.B \-H
.br
.ns
.TP
.B \-\-speed\-large\-files
小さな違いがあちこちにあるような大きなファイルの処理を
高速化するヒューリスティックを用います。
.TP
.BI \-\-horizon\-lines= lines
2つのファイルの先頭と末尾における共通部分のうち
.I lines 
行を残したままで差分を検索します
.\" (通常は先頭と末尾の共通部分を削除してから検索を行います)。
.TP
.B \-i
.br
.ns
.TP
.B \-\-ignore\-case
英大文字と小文字の違いを無視します。
.TP
.BI "\-I " regexp
.br
.ns
.TP
.BI \-\-ignore\-matching\-lines= regexp
正規表現
.I regexp
にマッチした行が追加あるいは削除されていても無視します。
.TP
.B \-\-initial\-tab
.br
.ns
.TP
.B \-T
通常形式および context diff 形式において、テキスト先頭に空白文字ではなく
タブを入れます。行に含まれるタブが元と同じような形で見えます。
.TP
.B \-l
.br
.ns
.TP
.B \-\-paginate
出力を
.I pr
に通してページ付けを行ないます。
.TP
.BI "\-L " label
.br
.ns
.TP
.BI \-\-label= label
context diff 形式および unified diff 形式において、
出力に付加されるファイル名の代わりに、
.I label
で指定したラベルを使用します。
.TP
.BI \-\-left\-column
2段組形式において、2つの共通の行の左の欄だけを表示します。
.TP
.BI \-\-line\-format= format
.I format
を用いて、すべての入力行を
if-then-else 形式で出力します。
.TP
.B \-n
.br
.ns
.TP
.B \-\-rcs
RCS形式の差分を出力します。
.B \-f
と似ていますが、各コマンドには適用した行数がついた形となります。
.TP
.B \-N
.br
.ns
.TP
.B \-\-new\-file
ディレクトリ単位の比較の時に、片方のディレクトリにだけ存在するファイルに
関しては、他のディレクトリでは空のファイルがあるものとして扱います。
.TP
.BI \-\-new\-group\-format= format
2番目のファイルにだけ存在する部分をif-then-else 形式で出力するために
.I format
を使います。
.TP
.BI \-\-new\-line\-format= format
if-then-else 形式で 2番目のファイルにだけ存在する行を出力するために使う
.I format
.TP
.BI \-\-old\-group\-format= format
if-then-else 形式で 1番目のファイルにだけ存在する部分を出力するために使
う
.I format
.TP
.BI \-\-old\-line\-format= format   ####
if-then-else 形式で 1番目のファイルにだけ存在する行を出力するために使う
.I format
.TP
.B \-P
.br
.ns
.TP
.B \-\-unidirectional\-new\-file
ディレクトリの比較において、2番目のディレクトリにしか存在しないファイル
があれば、1番目のディレクトリにもサイズ 0 のファイルがあるとみなします。
.TP
.B \-r
.br
.ns
.TP
.B \-\-recursive
ディレクトリ単位の比較の時に、サブディレクトリがあれば、その配下も再帰的に
検索して比較を行ないます。
.TP
.B \-\-report\-identical\-files
.br
.ns
.TP
.B \-s
ファイルの内容が同じだった時に、その旨を報告します。
.TP
.BI "\-S " file
.br
.ns
.TP
.BI \-\-starting\-file= file
ディレクトリ単位の比較の時に、
.I file 
で指定したファイル名から実行します。これは、一連の比較作業を中断した後に
途中から再開するのに便利です。
.TP
.B \-\-sdiff\-merge\-assist
.I sdiff 
作業の手助けになる補足の情報を表示します。普通、
.I sdiff 
が
.I diff 
を実行する際にはこのオプションを付けるので、
ユーザーが直接このオプションを使うことはありません。
.TP
.B \-\-show\-c\-function
C のプログラムを認識して、どの関数で変更があったかを表示します。
.TP
.B \-\-side\-by\-side
.br
.ns
.TP
.B \-y
比較する 2 つのファイルの内容を、横に並べて表示します(side-by-side 形式)。
.TP
.B \-\-suppress\-common\-lines
side-by-side 形式の表示で、同じ内容の行は表示しないようにします。
.TP
.B \-u
unified diff 形式を用います。
.TP
.BI \-\-unchanged\-group\-format= format
if-then-else 形式で変更がなかった部分を出力するために使う
.I format
.TP
.BI \-\-unchanged\-line\-format= format
if-then-else 形式で変更がなかった行を出力するために使う
.I format
.TP
.BI "\-U " 行数
.br
.ns
.TP
.BI \-\-unified[= 行数 ]
unified diff 形式にします。不一致の行の前後に、`行数'で
指定した行数のマッチした行も表示します。`行数'を省略した場合は 3行になります。
patch をうまく働かせるためには、少なくとも前後 2 行は必要です。
.TP
.B \-v
.br
.ns
.TP
.B \-\-version
.I diff
のバージョンを表示します。
.TP
.B \-w
.br
.ns
.TP
.B \-\-ignore\-all\-space
比較時に、空白は無視するようにします。
.TP
.BI "\-W " columns
.br
.ns
.TP
.BI \-\-width= columns
side-by-side 形式の表示で、1 行の幅を
.I columns
で指定した文字数にします。
.SH 関連項目
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1)
.SH 戻り値
比較結果として、違いが無かった場合は 0 を、違いが発見された場合は 1 を、
何かエラーがおきた場合は 2 を返します。