BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Linux diff –違いを示し、パッチを作成する方法、例

相違 コマンドは、Linuxシェルからファイルまたはディレクトリを比較する簡単な方法です。この記事では、一般的な使用例とともに、その使用方法を説明します。

相違点 コマンドは、2つのファイルまたはディレクトリの行ごとの比較を実行し、それらの違いを出力します。

ファイルやディレクトリを比較したいのはなぜですか?

  • 同じ名前の2つのファイルが似ているように見え、それらの違いを確認したい場合があります。
  • 作成中のプロジェクトのプログラミングコードへの変更を、新しいバージョンと古いバージョンで比較します。
  • 多くのファイルを別のドライブにコピーしましたが、すべてが正常にコピーされ、破損していないことを確認したいと考えています。
  • あなたと友人の両方が、フォルダ内に同じファイルのセットを持っています。変更を加えましたが、すべてを友達に送信したくありません。 diffを使用できます それらのファイルに加えられた変更のみを含むパッチを作成し、それらに送信してから、すべてを再ダウンロードすることなく、それらのコピーを最新の状態にします。

ファイルを比較する理由はおそらくあなた自身にあるでしょう。たとえば、 diff とその使用方法。

diff 構文

diff OPTIONS FILES

注:

  • オプションはオプションです 以下の表から提供できます
  • ファイル スペースで区切られた、比較する2つのファイルへのパスです

diff オプション

最も一般的に使用されるオプションは次のとおりです diff コマンド、ユーザーマニュアルから直接:

-q、–brief ファイルが異なる場合にのみ報告する
-s、–report-identical-files 2つのファイルが同じである場合に報告する
-u、-U NUM、–unified [=NUM​​] 統合コンテキストのNUM(デフォルトは3)行を出力
-N –new-file 存在しないファイルを空として扱います
-l、–paginate 出力を「pr」に渡してページ付けします
-r、–recursive 見つかったサブディレクトリを再帰的に比較します
–間接参照なし シンボリックリンクをたどらないでください
-a、–text すべてのファイルをテキストとして扱う
-d、–最小 より小さな変更のセットを見つけるために一生懸命努力してください
–speed-large-files 大きなファイルと多くの散在する小さな変更を想定します

ここで完全なマニュアルを表示するか、次を実行できます:

man diff

…オプションの完全なセットについては、コマンドラインから。

Linuxでのdiffとファイルの比較

これは、 diffの最も簡単な使用法です。 コマンドを実行すると、提供された2つのファイルの違いがコンソールに出力されます。

diff file1.txt file2.txt

出力のリダイレクト

パッチを作成するのではなく、単に違いを確認したい場合は、出力をファイルにリダイレクトするだけで便利です。変更が多い場合でも、端末が変更をカットしないようにするためです。

diff -q file1.txt file2.txt > differences.txt

これにより、作成されます(または上書きされます! differences.txt、 2つのファイルの違いを要約します。

-q 違いのみがリストされるようにオプションが追加されました。何が起こっているのかを簡単に確認できるように、同じファイルについては言及しません。

ディレクトリとdiffの比較

-rを使用してディレクトリを比較することもできます それらの内容を比較するための(再帰的)オプション:

diff -r -q /path/to/dir1 /path/to/dir2

繰り返しになりますが、 -qを使用しました 違いだけがリストされるように、ここでオプションを選択してください。

大きなファイルまたは大きなファイルを含むディレクトリの比較

差分 集中的なプロセスです。比較するすべてのファイルを読み取って比較する必要があります。しばらく時間がかかる場合があります。

–speed-large-files オプションは差分を変更します 大きなファイルを比較する場合に効率を上げるためのアルゴリズム–処理速度を少し上げます。

ファイルのパッチの作成

パッチを作成するには –最初のファイルの別のコピーに適用して2番目のファイルと同一にすることができる、2つのファイルの違いのリスト。次のコマンドを使用できます。

diff -u file1.txt file2.txt > update.patch

-u オプションは、統合の違いを出力します パッチで使用できる形式 変更を加えて元のファイルを更新するコマンド。

これは、データやプログラミングコードの一部を使用している友人や同僚がいて、データセットやアプリケーション全体を再度送信せずに、行った更新を送信したい場合に便利です。

ファイルのパッチのインストール

友だちがパッチを受け取ったら、次のパッチを使用してパッチを適用できます。 コマンド:

patch original.txt < update.patch

ファイルのパッチを元に戻す

間違えた場合は、 -R を使用してパッチを逆に実行することで、パッチを元に戻すことができます。 オプション:

patch -R original.txt < update.patch

ディレクトリのパッチの作成

次のコマンドは、 -r を実行して、ディレクトリ全体のパッチを作成します。 (再帰的)、 -u (統一フォーマット)、および -N (存在しないファイルを空として扱います)オプション。

diff -ruN originalDir updatedDir > update.patch

ディレクトリのパッチのインストール

-p0 を使用して、ディレクトリにパッチを適用できます。 オプション。パッチは、次の場所で作成されたのと同じディレクトリ構造に適用されます。

patch -p0 < update.patch

ディレクトリのパッチを元に戻す

最後に、ディレクトリのパッチ適用を元に戻す/元に戻す:

patch -R -p0 originalFile < patchFile


  1. Linuxでwatchコマンドを使用する方法と例

    Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時

  2. Windows 10 で隠しファイルとフォルダを表示する方法

    オンラインで最も重要なことの 1 つは、重要なファイルをのぞき見から保護する方法を知ることです。しかし、ファイルを隠して忘れたらどうしますか?または、隠しファイルをチェックして中身を取得したいですか? さて、隠された宝がどこにあるのか知っています。はい、ご想像のとおり、Windows 10 の隠しフォルダーと隠しファイルです。 この記事では、Windows 10 で隠しファイルを表示する方法を明らかにします。 始めましょう! 方法 1 - ファイル エクスプローラーを使用して Windows 10 の隠しファイルを表示する 上記の方法 1 が最も簡単に使用できます。ファイルとフォルダ