Linux diffコマンド一覧!ファイル差分の出力やディレクトリ同士を比較するオプションも解説!

Linuxのdiffコマンドで使えるオプションをご紹介します。Linuxのdiffコマンドでは2ファイルの差分を出力することを基本にディレクトリ同士の差分を出力することも可能です。ここからどんなことが出来るのかをお伝えしつつ、解説していきます。

目次

  1. 1Linuxのdiffコマンドを使おう!
  2. Linuxのdiffコマンドとは
  3. 2Linuxのdiffコマンドの基本
  4. 基本動作
  5. ファイル差分の出力
  6. 変動がある場合の使い方
  7. オプションなしでファイルの比較をする方法
  8. ディレクトリ同士で差異を確認する方法
  9. ファイルの違いのみを比較する方法
  10. 3Linuxのdiffコマンドの書式
  11. コマンドの実行例
  12. 一方のディレクトリにしか存在しないファイルを使う
  13. 変更のあるファイルの検出
  14. 4Linuxの便利なdiffコマンド
  15. sオプション
  16. qオプション
  17. cオプションはコンテキスト形式で表示
  18. Cオプションはコンテキスト形式で表示
  19. uオプションはユニファイド形式で表示
  20. yオプション
  21. rオプション
  22. 5Linuxの構文や出力形式
  23. 実際の例
  24. 構文の種類
  25. そのほかの用例
  26. 6Linuxのdiffコマンドをもっと使うための応用技術
  27. Cソース形式
  28. 行グループやグループ変換の使い方
  29. 7Linuxのdiffコマンドの便利な使い方
  30. パッチの作り方
  31. 8便利なLinuxのdiffコマンドを使って効率化を図ろう!

Linuxのdiffコマンドを使おう!

Linuxにはdiffというコマンドがあります。diffを使うことでテキストファイルの差分を出力することができます。このdiffコマンドの用途を知っても実際にはどんな時に使えるのだ、と疑問を持つ方が多いでしょう。ですので、今回はdiffの有用性を実行例も踏まえてご紹介します。初心者の方にも分かりやすくお伝えしていきます。

Linuxのdiffコマンドとは

まず、diffコマンドとは2つのテキストファイルを比較し、その比較から出てきた差分を出力するコマンドです。形式としては「diff ファイル1 ファイル2」という形式で実行します。2つのファイルを比較して、差分を出力するものですがディレクトリ単位でも出力可能です。diffコマンドはLinuxの基本コマンドの1つで用途が多いです。

実行例

Linuxのdiffコマンドを実際に打ち込むと以下のような形式になる。以下の場合はtest1とtest2というCSVファイルの中にある差分を抽出しなさいと言う命令文になります。この2つのファイルに対してdiffコマンドを打ち込み、実際に差分が生じていれば、その差分をすべて出力されるという仕組みになります。

Linuxのdiffコマンドの基本

Linuxのdiffコマンドにはいくつかの使い分けができます。このdiffコマンドの使い分けについてご紹介しましょう。diffコマンドは確かに2つのテキストファイルの差分を出力するコマンドです。しかし、差分を出力する場面によってコマンドを変えなければいけないとしたら厄介なコマンドになってしまいます。diffコマンドはそうしたことにも対応できます。

基本動作

diffコマンドの基本動作としては、やはり2つのテキストファイルを比較し、差分を出力するということになります。構文としてはtest1とtest2のファイルを比較した配列となります。実際にdiffコマンドを実行すると次のような結果が表示されました。

結果には2c2と表示されているところがありますが、test1の2行目がtest2の2行目に変更されていることを指しています。

2c2の下にはtest1の2行目、さらに点線を挟んでtest2の2行目の内容が表示されています。ここから2ファイルが比較され、差分がどのように出力されたかが判別できます。これがdiffコマンドの最も基本的なことですので覚えておいてください。

ファイル差分の出力

少しだけ余談となりますが、Linuxのdiffの使い方というのを少しまとめておきましょう。diffを使うことで2つのテキストファイル、もしくはディレクトリの差分、つまり違っているところを出力することができます。テキスト内容が違うということは、片方でエラーが出ているときに修正ができるということになります

あるいはdiffを使うことで変更されてしまった箇所の元の形を追うこともできます。diffの使い方の基本としてはこういったメリットがあります。diffを使うことででテキストファイルの差分を出力することができ、それを何に使うかは自由ですが、実際に業務等でdiffを使う際には参考にしてみてください。

変動がある場合の使い方

さて、Linuxのdiffコマンドができるのは基本動作だけではありません。もっと複雑な形式でも比較し、差分を出力することができます。例えば、比較したところ差分が複数個出力されてしまったらどうなるのでしょうか。正解は以下の図のようになります。

先ほど入力した内容から少しだけ変更をしています。今回は5,6c5,6と表記されています。これはtest1の5行目と6行目がtest2の5行目と6行目で変更されていることを指しています。その下にtest1の5行目と6行目の内容、点線を挟んでtest2の5行目と6行目の内容が表示されています。

今の例だと行が連番になっているので、まとめてdiffが表示してくれていますが離れた行の場合はどうなのでしょうか。例えば10行目と17行目で比較した結果、差異が出力された場合は以下のようになります。

オプションなしでファイルの比較をする方法

後ほどご紹介しますが、Linuxのdiffコマンドでオプションと呼ばれる機能を併用することもできます。ただし、オプションなしでもdiffを使うことは可能です。オプションなしでファイルを比較する方法と言いましたが、単純にdiffコマンドだけを入力すれば、その方法に該当することになります。

ただし、オプションを使わない方法でdiffを使うと面倒な上に機能が制限されてしまいますので、diffの使い方としてはあまりおすすめできません。この方法でのメリットとしてはdiff単体での能力を見ることができます。Linux初心者の方であれば、練習のためにオプションなしの方法でdiffを試してみてください。

関連するまとめ

関連するキーワード

この記事のライター
アナグマ
ライターのアナグマです。 いろいろなガジェット記事をお届けするので楽しみにしていてくださいね。

人気の記事

新着まとめ