「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

diff【コマンド】

pointこの用語のポイント

pointコマンドだよ

pointUNIX系で使えるよ

point2つのファイルの中身の違いを表示するよ

スポンサーリンク

簡単に書くよ

diff【コマンド】とは

コンピュータさんに対する命令文(コマンド)のひとつ
であり

2つのファイルの中身の違いを確認するときに使うコマンド
です。


image piyo

詳しく書くよ

「diff」コマンド

2つのファイルを比較したいときに使うコマンド

です。
UNIXLinuxとかMacとか)で使えます。

書き方は

diff [オプション] [ファイル名1] [ファイル名2]

です。
オプションは地味にいっぱいあります。

オプション説明
-a指定されたファイルがテキストファイル以外の場合も中身をテキストと見なして比較する
-b空白の数の違いを無視する
-B空行の有り無しの違いを無視する
-ccontext出力形式とやらで出力する。比較結果の見せ方の指定?
-C【数字】「-c」オプションと同じだけど、内容が違う行の前後【数字】行を出力する
-dアルゴリズムを変更してちょっとした違いも拾えるようにするらしい。これを使うとdiffは遅くなるそうな
-D【名前】if-then-else形式で出力して、プリプロセッサのマクロ?の条件?に【名前】を使うらしい。英語で書くと「Make merged if-then-else format output, conditional on the preprocessor macro name.」ですってさ。よく分からん
-eedのスクリプト形式で出力するらしい。よく分からん
-fedのスクリプトとパッと見同じような感じで出力するらしい。こんなオプション使うの?
-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【パターン】ファイルの中身における【パターン】の有り無しの違いを無視する
-lprを通してページ付けをするらしい
-L【ラベル】ontext形式かunified形式の場合、ヘッダにはファイル名ではなく【ラベル】を表示する
-nRCS形式の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ディレクトリが指定された場合はサブディレクトリの中も比較する
-s2つのファイルが同じだった場合は「同じだよー!」と表示する
-S【ファイル名】ディレクトリ比較の場合、【ファイル名】から始める。中断したときの再開用ですってさ
-tタブスペースに変換して出力する
-Tnormal形式かcontext形式の場合、テキスト前のスペースはタブに変換して出力する。これをやると行中でのタブによる位置揃えがいー感じに見えるのだそうな
-uunified出力形式とやらで出力する。比較結果の見せ方の指定?
-U【数字】-u」オプションと同じだけど、内容が違う行の前後【数字】行を出力する
-vバージョン情報を表示する
-W【数字】side by side出力形式とやらで出力するとき、幅を【数字】で出力するらしい
-x 【パターン】ディレクトリを比較するとき、【パターン】と一致するファイルやディレクトリは比較対象から外す
-X【ファイル名の一部】ディレクトリを比較するとき、ファイル名のベース部が【ファイル名の一部】に一致するファイルやディレクトリを比較対象から外す。要は比較対象にしたくないファイルを指定するオプションっぽい
-yside by side出力形式とやらで出力する。比較結果の見せ方の指定?比較した2つのファイルを横並びで表示するっぽい

などです。

ぶっちゃけ、書いてて涙目になるくらいオプションが多いのですが、使う機会は そこまで多くは ありません。
オプション未指定で

diff 【ファイル名1】 【ファイル名2】

としても、それなりに便利なコマンドです。
ちょっと凝った比較がしたくなったら徐々にオプションも覚えていく感じで良いと思います。

あと余談ですが「diff」は(多分)difference(different)」の略です。


image piyo2

一言でまとめるよ

まぁ「diff」ってコマンドが出てきたら「2つのファイルの中身の違いを抽出するときに使うんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像075
書籍画像025

おまけ

■訳してみるよ

「diff」は多分「difference(ディファレンス)」の略です。
「difference(ディファレンス)」の意味は「違い」です。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
クイズで学ぶUIデザイン ユーザビリティの基本が身につく50問
タヌキとキツネ