見出し画像

ファイルの違いを一目で確認!Linuxのdiffコマンド活用法

日々の作業で「あれ、このファイル、どこが変わったんだろう?」と思ったことはありませんか?そんなときに頼れるのがdiffコマンド。LinuxやUnix系のシステムで使えるこのコマンドは、2つのファイルやディレクトリの違いを比べるのにピッタリです。ここでは、その使い方やオプションを具体的に見ていきましょう! 意外とdiffコマンド、 オプションがあるんです


diffコマンドの基本と使いどころ

diffは、指定した2つのファイルやディレクトリの中身を比較し、どこが違うのかを教えてくれます。特にプログラムや設定ファイルの変更点を確認したいときに便利です。

基本的な構文

diff [オプション] 作業前のファイル 作業後のファイル

たとえば、file1.txtとfile2.txtを比べたい場合、以下のように入力します。

diff file1.txt file2.txt

出力例と読み方

変更点を表示する例

2つのファイルに少しだけ内容の違いがある場合、次のような出力が得られます。

コマンド:

diff file1.txt file2.txt

出力:

1c1
< Hello World
---
> Hello Universe
  • 1c1:1行目に変更があるという意味。

  • <:元のファイル(作業前のファイル)に書かれていた内容。

  • >:新しいファイル(作業後のファイル)で変更された内容。

このように、どこが変わったのかがすぐにわかります。


よく使うオプションとその意味

diffには便利なオプションがいくつもあります。それぞれの意味を知っておくと、作業がさらにスムーズになります。

(1) -u(ユニファイド形式)

変更点をわかりやすく、まとまった形で表示します。特に開発現場では、これがよく使われます。

例:

diff -u file1.txt file2.txt

出力例:

--- file1.txt    2025-01-01 10:00:00
+++ file2.txt    2025-01-01 11:00:00
@@ -1,3 +1,3 @@
-Hello World
+Hello Universe
  • -:削除された内容。

  • +:追加された内容。

  • @@ -1,3 +1,3 @@:変更があった範囲を示しています。

(2) -c(コンテキスト形式)

変更箇所の前後数行も表示し、文脈を把握しやすくします。

例:

diff -c file1.txt file2.txt

出力例:

*** file1.txt    2025-01-01 10:00:00
--- file2.txt    2025-01-01 11:00:00
***************
*** 1,3 ****
  Hello World
  This is a test file.
  Let's see the difference.
--- 1,3 ----
  Hello Universe
  This is a test file.
  Let's see the difference.
  • ***と---:それぞれ元のファイルと新しいファイルのセクションを示します。

  • ***************:変更のあるブロックを区切るライン。

  • !:変更点を示す行が出力内に含まれています。

(3) -r(再帰的比較)

ディレクトリ全体を比較したいときに使います。サブディレクトリの中身も含めてチェックするので、フォルダ単位で作業を管理している場合に便利です。

例:

diff -r dir1 dir2

(4) -q(簡潔な表示)

違いがあるかどうかだけを確認したい場合に便利です。

例:

diff -q file1.txt file2.txt

出力例:

Files file1.txt and file2.txt differ

(5) -y(サイドバイサイド形式)

左右に比較内容を並べて表示します。視覚的に比較しやすくなるのがポイントです。-yは「横に(Side-by-side)」を意味しています。

例:

diff -y file1.txt file2.txt

出力例:

Hello World                              | Hello Universe
This is a test file.                       This is a test file.
Let's see the difference.                  Let's see the difference.
  • |:その行が異なることを示します。

  • 左側が作業前のファイル、右側が作業後のファイルです。


応用的な使い方

(1) パッチファイルを作成して変更を適用

diffの出力をファイルに保存すれば、後からその変更を他のファイルに適用できます。

例:

diff -u original.txt modified.txt > changes.patch
patch original.txt < changes.patch

(2) 色付きで見やすくする

通常のdiffコマンドは白黒ですが、colordiffを使えば色分けされて表示され、さらに見やすくなります。

例:

colordiff file1.txt file2.txt

まとめ

diffコマンドは、ファイルやディレクトリの違いを簡単に確認できる便利なツールです。以下のポイントを押さえておけば、スムーズに使いこなせます。

  • 作業前後のファイルを指定して、変更点を確認。

  • オプションを活用して、用途に合った出力形式を選択。

  • -uや-cで詳細を、-yで視覚的に違いをチェック。

  • パッチファイルを作成して変更を再利用。

「あれ、何が変わったんだっけ?」と思ったときは、ぜひdiffを試してみてください!

いいなと思ったら応援しよう!