コマンドdiff
パッケージからdiffutils
ファイルを1行ずつ比較します。前回のバックアップ以降にファイルに最近変更があったかどうか、およびそれらが何であるかを確認する場合に非常に便利です。 0
の終了ステータス 違いが見つからなかったことを意味します。1
いくつかの違いが見つかったことを意味し、2
トラブルを意味します。そしてもちろん、変更がある場合は、diff
それらを表示します。しかし、いくつかの例を見てみましょう。
例1:両方のファイルの内容が同じ
アリスとボブはそれぞれバーベキューをしていて、メニューを公開しています。私が最も楽しむメニューを決定するために、次のようにメニューを比較することができます。
$ diff menu1 menu2
$ echo $?
0
$ cat menu{1,2}
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
ほら、どちらもスペアリブ、ブリスケット、プルドポークを提供しています。両方のファイルに違いはありません。たぶん、アリスとボブは力を合わせて本当に巨大なバーベキューを主催するべきです。
アリスとボブがパーティーを開いていると聞いたイブは、嫉妬し、バーベキューも主催することにしました。彼女のメニューにはファイルmenu3
が付属しています 。さて、彼女のメニューの違いをアリスやボブと比較してみましょう。
例2:飲み物が含まれています
$ diff menu1 menu3
4a5,8
>
> # Drinks
> * Soda
> * Beer
$ echo $?
1
$
現在、違いがあります。そして、最初の行の出力で、diff
(a)menu1
に何を追加する必要があるかを教えてくれます menu3
と同じコンテンツになるようにします 。つまり、4a5,8
これは、menu1
の4行目の後にいくつかの行を追加する必要があることを意味します menu3
の5〜8行目のように表示されます 。
ファイルの位置を切り替えると、出力は異なって見えます:
$ diff menu3 menu1
5,8d4
<
< # Drinks
< * Soda
< * Beer
さて、diff
menu3
の5〜8行目は ファイルをmenu1
と同一にするために、削除する必要があります(d) 。
例3:変更するものがある場合
menu1
を編集しました およびmenu2
再びこのようになります:
# The menu
* Spare Ribs
* Brisket
* Pulled Pork
# The menu
* Spare Ribs
* Pulled Pork
* Pulled Pork
今回は、diff
両方のファイルを同じように見せるために、どちらの行を変更する必要があるかを示します(c):
$ diff menu1 menu2
3c3
< * Brisket
---
> * Pulled Pork
まとめ
diff
コマンドは、ファイルを1行ずつ比較するための簡単で柔軟なツールです。 diff(1)
をご覧ください diff
で他に何ができるかを理解する 。
[システム管理者のスキルをテストしたいですか?今日、スキル評価を受けてください。 ]