【Linux】diffコマンドとは?使い方と便利なオプションを紹介

Linux_diffコマンド_使い方 オペレーティングシステム

ファイルの内容が一緒かどうか目視で確認するのは大変ですよね.

そんなときはdiffコマンドを使いましょう!
diffコマンドであれば行数関係なくコマンド1つ実行するだけでファイルの差分を確認できます.

今回はファイルの差分を表示するdiffコマンドについて紹介します.

diffコマンドについて

diffコマンドを使うと2つのファイルの差分を表示できます.

diff オプション 比較元ファイル 比較先ファイル

ソースコードの変更内容を確認するときに使うと便利でしょう!

数行であれば目で見ても分かりますが,数百行のコードから差分を見つけるのは大変です.
コマンドであれば簡単に見つけられ作業効率が上がりますね.

コマンドを実行して差分を表示する

ここにトレーニングメニューがあります.
10月10日(月)のメニューをコピーし11日(火)分を作成しました.

(左)2023年10月10日(右)2023年10月11日のトレーニングメニュー|クリックして拡大できます

2つのファイルの差分を表示してみましょう!

ファイルの差分|クリックして拡大できます
$ diff 20231010_diff.md 20231010_diff_copy.md

2つのファイルの差分は日付だったため,1行目が差分として表示されました.

出力結果を確認する

差分の見方を確認しましょう!

$ diff 20231010_diff.md 20231010_diff_copy.md 
1c1
< # 2023年10月10日(月)のトレーニングメニュー
---
> # 2023年10月11日(火)のトレーニングメニュー

コマンドの後の「1c1」は「変更コマンド」と呼ばれ,元ファイルのどの行をどのように変更したか表しています.

変更コマンドは左から「変更範囲1 変更種別 変更範囲2」を意味し,変更種別は3種類あります.

  • a:Add(追加)
  • c:Change(変更)
  • d:Delete(削除)

以上から「1c1」は「1つ目のファイルの範囲1の箇所が,2つ目のファイルの範囲1の内容に変更された」という意味になりますね.

diffコマンドのオプションを使う

diffコマンドと一緒に使うと便利なオプションについて紹介します.

-c context形式で表示する

差分の変更記号がcontext形式で表示します.

  • !:変更点
  • + : 追加
  • – =:削除
ファイルの差分をcontext形式で表示する|クリックして拡大できます

-u unified形式で表示する

差分の変更記号がunified形式で表示します.

  • + :行の追加
  • -:行の削除
ファイルの差分をunified形式で表示する|クリックして拡大できます

-y 横並びで表示する

ファイルの内容を横並びで表示します.

ファイルの中身を横並びで表示する|クリックして拡大できます

-q 差分があればメッセージを表示する

差分があればメッセージを表示され,なければ何も表示されません.

ファイルに差分があればメッセージが表示される|クリックして拡大できます

-s 差分がなくてもメッセージを表示する

差分があれば差分を出力し,なければ差分がないというメッセージを表示します

ファイルに差分がなくてもメッセージを表示する|クリックして拡大できます

-b 空白の差分は無視する

空白の差分は無視します.

ファイルの空白の違いは差分として認識しない|クリックして拡大できます

まとめ

今回はdiffコマンドの使い方とそのオプションについて紹介しました.

コマンドを使って簡単にファイルの差分を確認できると便利ですね.

diffコマンドはオプションと併用するとさらに使いやすくなるコマンドだと思ったので是非活用してみてください!