diffコマンド

diffコマンド

用途

2つのファイルやディレクトリの違いを比較する

書式

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

主なオプション

  • -aテキストファイル以外の物も、全てテキストとみなして比較する
  • -bスペース(ブランク)の違いについては無視する
  • -iアルファベットの大文字と小文字の違いは無視する
  • -rディレクトリ比較時に、サブディレクトリも再帰的に比較する

diffコマンド出力結果の見方

2つの内容の異なるファイルを比較する場合、
デフォルトオプションでの出力結果は、
< 」「>」の記号によって出力されます。

$ diff oldfile newfile のように比較対象を指定した場合、
「< 」の記号は、第一引数で指定したファイル(oldfile)を表し、 「>」の記号は、第二引数に指定したファイル(newfile)の内容を表しています。

[devi@syslog testdir]$ diff oldfile.txt newfile.txt
2c2
< eee fff ggg hhh --- > eee FFF ggg hhh
[devi@syslog testdir]$

ディレクトリ内の格納ファイルを比較

・2つのディレクトリの内容を比較する
[devi@syslog ~]$ ls -l tartest/
total 24
-rw-rw-r– 1 devi devi 4 May 15 15:40 aaa.txt
-rw-rw-r– 1 devi devi 10240 May 15 15:42 archivefile.tar
-rw-rw-r– 1 devi devi 4 May 15 15:36 bbb.txt
-rw-rw-r– 1 devi devi 4 May 15 15:36 ccc.txt
[devi@syslog ~]$

[devi@syslog ~]$ ls -l difftest/
total 12
-rw-rw-r– 1 devi devi 4 May 15 15:40 aaa.txt
-rw-rw-r– 1 devi devi 4 May 15 15:36 bbb.txt
-rw-rw-r– 1 devi devi 4 May 15 15:36 ccc.txt
[devi@syslog ~]$

[devi@syslog ~]$ diff tartest/ difftest/
Only in tartest/: archivefile.tar
[devi@syslog ~]$

便利なdiffコマンドの使い方

試しに、設定ファイル(httpd.conf)を編集した後に、
diffコマンドで差分情報を確認してみます。

・バックアップ取得
[root@syslog ~]# cd /usr/local/apache2/conf/
[root@syslog conf]# cp -pi httpd.conf httpd.conf.20090730

[root@syslog conf]# ls -l | grep httpd
-rw-r–r– 1 root root 13733 Dec 31 2008 httpd.conf
-rw-r–r– 1 root root 13733 Dec 31 2008 httpd.conf.20090730
[root@syslog conf]#

httpd.confに、Indexesを追記後に確認

[root@syslog conf]# diff httpd.conf.20090730 httpd.conf
147c147
< Options FollowSymLinks ExecCGI --- > Options FollowSymLinks ExecCGI Indexes
[root@syslog conf]#

複数人でシステム管理をする場合にはもちろん、一人で管理を行う場合でも、
編集前のファイルと、編集後のファイルを比べてみることで、
どの部分に変更を加えたのかを把握することが可能です。

作業記録なんかもdiffを取って残しておくと、
ノウハウの蓄積やナレッジとして使えるので便利ですね。

タグ

2009年7月30日 | コメントは受け付けていません。 | トラックバックURL |

カテゴリー:ファイル操作系コマンド

トラックバック&コメント

コメントは受け付けていません。