diff
スポンサーリンク
何するコマンド?
書き方
diff [オプション] [ファイル名1] [ファイル名2]
オプション
| オプション | 説明 |
|---|---|
| -a | 指定されたファイルがテキストファイル以外の場合も中身をテキストと見なして比較する |
| -b | 空白の数の違いを無視する |
| -B | 空行の有り無しの違いを無視する |
| -c | context出力形式とやらで出力する。比較結果の見せ方の指定? |
| -C【数字】 | 「-c」オプションと同じだけど、内容が違う行の前後【数字】行を出力する |
| -d | アルゴリズムを変更してちょっとした違いも拾えるようにするらしい。これを使うとdiffは遅くなるそうな |
| -D【名前】 | if-then-else形式で出力して、プリプロセッサのマクロ?の条件?に【名前】を使うらしい。英語で書くと「Make merged if-then-else format output, conditional on the preprocessor macro name.」ですってさ。よく分からん |
| -e | edのスクリプト形式で出力するらしい。よく分からん |
| -f | edのスクリプトとパッと見同じような感じで出力するらしい。こんなオプション使うの? |
| -F【パターン】 | context形式とunified形式において、それぞれの差分ブロックに対して【パターン】マッチしたほげほげ。英語で書くと「In context and unified format, for each hunk of differences, show some of the last preceding line that matches regexp.」ですってさ。ようするによく分からん |
| -h | うん、UNIXとの互換性のためにあるけど使わないでね。なオプション |
| -H | ちょっとした違いがたくさんある大きなファイルをチョッパヤで扱うためにheuristicsな方法を取るらしい。要するに、よく分からん |
| -i | アルファベットの大文字・小文字の違いを無視する |
| -I【パターン】 | ファイルの中身における【パターン】の有り無しの違いを無視する |
| -l | prを通してページ付けをするらしい |
| -L【ラベル】 | ontext形式かunified形式の場合、ヘッダにはファイル名ではなく【ラベル】を表示する |
| -n | RCS形式のdiffを出力するらしい。よく分からん |
| -N | ディレクトリ比較の場合、片方のディレクトリにしかないファイルについては、もう一方のディレクトリには空ファイルがあるつもりで比較する。要するにディレクトリ「a/」と「b/」を比較していて「a/a.txt」があった場合、「b/」にはa.txtが無い場合でも「b/a.txt(中身は空)」があるつもりで比較するよってこと |
| -p | 「Show which C function each change is in.」らしい。よく分からん |
| -P | ディレクトリ比較の場合、2番目のディレクトリにしかないファイルについては、もう一方のディレクトリには空ファイルがあるつもりで比較する。1番目のディレクトリにだけあるファイルは無視するのが「-N」との違いですかね |
| -q | ファイルが同じか違うかだけを表示する。詳細は表示しない |
| -r | ディレクトリが指定された場合はサブディレクトリの中も比較する |
| -s | 2つのファイルが同じだった場合は「同じだよー!」と表示する |
| -S【ファイル名】 | ディレクトリ比較の場合、【ファイル名】から始める。中断したときの再開用ですってさ |
| -t | タブをスペースに変換して出力する |
| -T | normal形式かcontext形式の場合、テキスト前のスペースはタブに変換して出力する。これをやると行中でのタブによる位置揃えがいー感じに見えるのだそうな |
| -u | unified出力形式とやらで出力する。比較結果の見せ方の指定? |
| -U【数字】 | -u」オプションと同じだけど、内容が違う行の前後【数字】行を出力する |
| -v | バージョン情報を表示する |
| -W【数字】 | side by side出力形式とやらで出力するとき、幅を【数字】で出力するらしい |
| -x 【パターン】 | ディレクトリを比較するとき、【パターン】と一致するファイルやディレクトリは比較対象から外す |
| -X【ファイル名の一部】 | ディレクトリを比較するとき、ファイル名のベース部が【ファイル名の一部】に一致するファイルやディレクトリを比較対象から外す。要は比較対象にしたくないファイルを指定するオプションっぽい |
| -y | side by side出力形式とやらで出力する。比較結果の見せ方の指定?比較した2つのファイルを横並びで表示するっぽい |
補足事項
ぶっちゃけ、書いてて涙目になるくらいオプションが多いのですが、使う機会は そこまで多くは ありません。
オプション未指定で
diff 【ファイル名1】 【ファイル名2】
としても、それなりに便利なコマンドです。
ちょっと凝った比較がしたくなったら徐々にオプションも覚えていく感じで良いと思います。
あと余談ですが「diff」は(多分)「difference(different)」の略です。
