linux diffコマンドとは?ファイルの差分を確認する

linux初心者の方でファイルの差分を確認するlinuxコマンドであるdiffコマンドについて知りたい方いらっしゃるのではないでしょうか。

本記事では、linux diffコマンドの使い方・オプションについて解説していきます。

linux初心者の方やdiffコマンドの使い方を知りたい方はぜひ、参考にしてみてください。

この記事でわかること

・linux diffコマンドとは
・linux diffコマンドの基本的な使い方
・linux diffコマンドのオプション
・業務でよく使うdiffコマンドの流れ

linux diffコマンドとは?

diffコマンドとは、linuxでファイルの差分を比較するコマンドになります。

業務の中でもファイルの内容を変更する際に変更箇所を確認するのにdiffコマンドをよく使います。

使用することの多いlinuxコマンドになるため、使い方を覚えておくことをおすすめします。

linux diffコマンドの基本的な使い方

diffコマンドはオプションをつけずに使用することが多いため、まずはオプションをつけないで使用する方法を覚えましょう。

diffコマンドのオプションをつけずに使用する場合の書式は以下のようになります。

書式
diff 比較したいファイル 比較したいファイル

例えば、/tmp配下のtestファイルとtest.bkファイルを比較下場合には以下のような書式になります。

書式
diff /tmp/test /tmp/test2
ファイル1
ファイル2

linux diffコマンドのオプション

diffコマンドのオプションの中で使用する機会の多いオプションについて解説します。

diffコマンドはオプションなしで使用することが多いですが、オプションも覚えておくとより便利に使うことができるため、覚えておきましょう。

オプション説明
-bスペースの数が違う場合は無視する
-i大文字と小文字の区別を無視する
-qファイルが違うかどうか報告をする
-rディレクトリを比較するときサブディレクトリも再帰的に比較する
-sファイルに違いがない場合も報告する

-b・・・スペースの数が違う場合は無視する

-bオプションは、差分を確認する際にスペースの数が違う場合は無視したい際に使用します。

-bオプションの使用方法は以下のようになります。

書式
diff -b ファイル名 ファイル名

例えば、/tmp/testファイルと/tmp/test2ファイルを比較したい場合には、以下のような書式になります。

書式
diff -b /tmp/test /tmp/test2
ファイル1
ファイル2

-i・・・大文字と小文字の区別を無視する

-iオプションは、文字の大文字と小文字の区別を無視して差分を出したい場合に使用します。

diffコマンドオプションの中でも1番使用する機会の多いオプションになります。

-iオプションの書式は以下のようになります。

書式
diff -i ファイル名 ファイル名

例えば、大文字と小文字を区別して/tmp/testファイルと/tmp/test2ファイルを区別したい場合には以下のような書式になります。

書式
diff -i /tmp/test /tmp/test2
ファイル1
ファイル2

-q・・・ファイルが違うかどうか報告をする

-qコマンドは、差分の内容は出力せず、ファイルが違うかどうかの結果のみチェックするコマンドになります。

また、ファイルが同一の場合には出力結果は特に返ってきません。

-qオプションは以下のようになります。

書式
diff -q ファイル名 ファイル名

例えば、/tmp/testファイルと/tmp/test2ファイルを比較し、ファイルの差分の結果だけを出力した場合は以下のようになります。

書式
diff -q /tmp/test /tmp/test2
ファイル1
ファイル2

-r・・・ディレクトリを比較するときサブディレクトリも再帰的に比較する

-rオプションは、ディレクトリを比較する際に使用するオプションになります。

ディレクトリを比較する際にディレクトリ内のファイルも一緒に比較を行います。

-rオプションの書式は以下のようになります。

書式
diff -r ファイル名 ファイル名

例えば、/tmp/ディレクトリと/tmp2ディレクトリの比較を行いたい場合の書式は以下のようになります。

書式
diff -r /tmp /tmp2
ディレクトリ1
ディレクトリ2

-s・・・ファイルに違いがない場合も報告する

-sオプションは、ファイルが同一の場合に報告のみを出力するオプションになります。

-sオプションの書式は以下のようになります。

書式
diff -s ファイル名 ファイル名

例えば、/tmp/testファイルと/tmp/test2ファイルの差分の報告のみを出力したい場合は以下のような書式になります。

書式
diff -s /tmp/test /tmp/test2
ファイル1
ファイル2

業務でよく使うdiffコマンドの流れ

業務の中でdiffコマンドを使用する機会は多くありますが、その中で特に使用する流れを紹介します。

業務の中でlinuxを使用する機会の多い方やdiffコマンド使用することの多い方はぜひ、参考にしてみてください。

STEP
cp /tmp/test /tmp/test2
STEP
vi /tmp/test
STEP
cat /tmp/test
STEP
diff /tmp/test /tmp/test2

diffコマンドは上記のように編集ファイルと元ファイルの差分を確認する際に使用することが多いです。

viコマンドで編集を行う際に、編集箇所以外も編集してしまう場合がたまにあるため、diffコマンドで差分を確認することで編集箇所以外に編集している箇所がないか確認を行うことができます。

例えば、BIOS関係のファイルを編集する際には、余計な空白や改行が入るだけでPCが起動しなくなることもあるので差分を確認することが重要になります。

まとめ

いかがでしたか。

本記事では、linux diffコマンドの使い方・オプションについて解説してきました。

linux初心者の方やdiffコマンドの使い方を知りたい方はぜひ、参考にしてみてください。

【初心者エンジニア必見!エンジニアが持っておきたい持ち物・ガジェット一覧】

エンジニアにおすすめの持ち物とガジェットを一覧でまとめています。

利用することで作業効率を上げることのできる物を厳選して紹介しているため、エンジニアの方やリモート勤務の方は特に参考にしてみてください。




ABOUT US
はなちゃん
25歳インフラエンジニア5年目のはなちゃんです。 未経験からインフラエンジニアになった経験を生かしてインフラエンジニアの基礎的部分、linux、awsを中心にブログを書いています。 転職サイトを利用した転職経験もあります。 ■保有資格:LPIC lenel3・ITパスポート・AWS SAA ■業務経験:インフラ業務の設計~運用まで