Linux のファイル比較および差分 (Diff) ツールのベスト 10
プログラマーやライターは、プログラム ファイルや通常のテキスト ファイルを作成するときに、2 つのファイルまたは同じファイルの 2 つのバージョンの違いを知りたい場合があります。
Linux 上で 2 つのコンピュータ ファイルを比較するとき、 それらの内容の違いを差分と呼びます。この説明は、有名な Unix コマンド ライン ファイル比較ユーティリティである diff の出力への参照から生まれました。
Linux 上で使用できるファイル比較ツールはいくつかありますが、このレビューでは、コードやその他のテキスト ファイルを作成する際に利用できる、最良のターミナルベースの GUI の差分ツールのいくつかを見ていきます。
1. diffコマンド
私は、2 つのコンピュータ ファイルの違いを表示するオリジナルの Unix コマンド ライン ツールから始めるのが好きです。 Diff はシンプルで使いやすく、ほとんどの Linux ディストリビューションにプリインストールされており、ファイルを 1 行ずつ比較し、それらの差分を出力します。
2 つのファイルを比較し、相違点を表示します。
diff file1.txt file2.txt
簡単に使用できるよう、diff の手動入力を確認してください。
man diff
diff ツールの機能を強化するラッパーがいくつかあります。これらには次のようなものがあります。
colordiffコマンド
Colordiff は、 diff と同じ出力を生成する Perl スクリプトですが、色と構文の強調表示が付いています。カスタマイズ可能な配色があります。
ここに示すように、yum、dnf、および apt-get または apt と呼ばれるデフォルトのパッケージ マネージャー ツールを使用して、Linux システムにColordiff をインストールできます。
sudo apt install colordiff [On Debian, Ubuntu and Mint]
sudo yum install colordiff [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/colordiff [On Gentoo Linux]
sudo apk add colordiff [On Alpine Linux]
sudo pacman -S colordiff [On Arch Linux]
sudo zypper install colordiff [On OpenSUSE]
ディレクトリを再帰的に比較します。
colordiff file1.txt file2.txt
次に示すように、colordiff の手動エントリを確認してください。
man colordiff
wdiffコマンド
wdiff ユーティリティは、ファイルを単語ごとに比較するために使用される diff コマンドのフロントエンドです。このプログラムは、2 つのテキストを比較して、単語の変更や段落の補充を比較する場合に非常に役立ちます。
Linux システムに wdiff をインストールするには、次のコマンドを実行します。
sudo apt install wdiff [On Debian, Ubuntu and Mint]
sudo yum install wdiff [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/wdiff [On Gentoo Linux]
sudo apk add wdiff [On Alpine Linux]
sudo pacman -S wdiff [On Arch Linux]
sudo zypper install wdiff [On OpenSUSE]
2 つのファイルを並べて表示し、単語レベルの違いを強調表示します。
wdiff file1.txt file2.txt
Linux での使用方法については、wdiff マニュアルを参照してください。
man wdiff
2. Vimdiffコマンド
Vimdiff は、 diff ユーティリティと比べて高度な方法で機能します。このユーティリティを使用すると、ユーザーは最大 4 つのバージョンのファイルを編集しながら、それらの違いを表示できます。これを実行すると、Vimdiff は Vim テキスト エディタを使用して 2 つ、3 つ、または 4 つのファイルを開きます。
vimdiff を使用するには、システムに Vim がインストールされている必要がありますが、インストールされていない場合は、パッケージ マネージャーを使用してインストールできます。
sudo apt install vim [On Debian, Ubuntu and Mint]
sudo yum install vim [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim [On Gentoo Linux]
sudo apk add vim [On Alpine Linux]
sudo pacman -S vim [On Arch Linux]
sudo zypper install vim [On OpenSUSE]
vimdiff を使用して 2 つのファイルを比較するには、次のコマンドを実行します。
vimdiff file1.txt file2.txt
vimdiff を使用して 3 つのファイルを比較することもできます。
vimdiff file1.txt file2.txt file3.txt
さらに詳細な情報と使用方法のオプションについては、実行してマニュアル ページにアクセスできます。
man vimdiff
3. ディフ
sdiff コマンドは、2 つのファイルを並べて比較し、それらの違いを強調表示するために使用されます。 2 つのファイルの内容が別々の列に表示されます。追加された行には ">"
というプレフィックスが付けられ、削除された行には "<"
というプレフィックスが付けられ、共通の行はプレフィックスなしで表示されます。 。
sdiff コマンドは通常、ほとんどの Linux ディストリビューションの標準インストールに付属しています。ただし、インストールされていない場合は、パッケージ マネージャーを使用してインストールできます。
sudo apt install diffutils [On Debian, Ubuntu and Mint]
sudo yum install diffutils [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffutils [On Gentoo Linux]
sudo apk add diffutils [On Alpine Linux]
sudo pacman -S diffutils [On Arch Linux]
sudo zypper install diffutils [On OpenSUSE]
2 つのファイルを比較し、相違点を並べて表示します。
sdiff file1.txt file2.txt
古い学校の diff ツールを見てきたので、Linux で利用できるいくつかの GUI diff ツールにすぐに移りましょう。
4. コンパレ
Kompare は、ファイル間の差異を比較および表示したり、ファイルをマージしたりできるグラフィカルな差分およびマージ ツールです。
Linux ディストリビューションにKompare をインストールするには、システム固有のパッケージ マネージャーを使用できます。
sudo apt install kompare [On Debian, Ubuntu and Mint]
sudo yum install kompare [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kompare [On Gentoo Linux]
sudo apk add kompare [On Alpine Linux]
sudo pacman -S kompare [On Arch Linux]
sudo zypper install kompare [On OpenSUSE]
その機能には次のようなものがあります。
- 複数の差分形式をサポート
- ディレクトリの比較をサポート
- 差分ファイルの読み取りをサポート
- カスタマイズ可能なインターフェース
- ソースファイルへのパッチの作成と適用
5. ディフマージ
DiffMerge は、ファイルを比較およびマージするためのクロスプラットフォーム GUI アプリケーションです。 2 つの機能エンジンがあり、2 つのファイル間の違いを表示し、行内の強調表示と編集をサポートする差分エンジンと、ファイル間で変更された行を出力するマージエンジンです。 3つのファイル。
次のような特徴があります。
- ディレクトリ比較をサポート
- ファイルブラウザの統合
- 高度に構成可能
6. Meld – 差分ツール
Meld は軽量の GUI の差分およびマージ ツールで、ユーザーはファイル、ディレクトリ、およびバージョン管理されたプログラムを比較できます。開発者向けに特別に構築されており、次の機能が備わっています。
- ファイルとディレクトリの二元比較および三元比較
- ユーザーがさらに単語を入力するとファイル比較が更新されます
- 自動マージ モードと変更されたブロックに対するアクションを使用することで、マージが容易になります
- 視覚化を使用して簡単に比較
- Git、Mercurial、Subversion、Bazaar などをサポート
Linux にMeld をインストールするには、パッケージ マネージャーを使用して公式リポジトリからインストールします。
sudo apt install meld [On Debian, Ubuntu and Mint]
sudo yum install meld [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/meld [On Gentoo Linux]
sudo apk add meld [On Alpine Linux]
sudo pacman -S meld [On Arch Linux]
sudo zypper install meld [On OpenSUSE]
7. 拡散 – GUI 差分ツール
Diffuse も、Linux で使用できる人気のある、無料の小型でシンプルな GUI の差分およびマージ ツールです。 Python で書かれており、ファイル比較とバージョン管理という 2 つの主要な機能を提供し、ファイル編集とファイルのマージを可能にし、ファイル間の差異も出力します。
Linux にDiffuse をインストールするには、次のようにパッケージ マネージャーを使用できます。
sudo apt install diffuse [On Debian, Ubuntu and Mint]
sudo yum install diffuse [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffuse [On Gentoo Linux]
sudo apk add diffuse [On Alpine Linux]
sudo pacman -S diffuse [On Arch Linux]
sudo zypper install diffuse [On OpenSUSE]
比較の概要を表示したり、マウス ポインタを使用してファイル内のテキスト行を選択したり、隣接するファイル内の行を一致させたり、別のファイルを編集したりできます。
その他の機能は次のとおりです。
- 構文の強調表示
- ナビゲーションを容易にするキーボード ショートカット
- 無制限の取り消しをサポート
- Unicode のサポート
- Git、CVS、Darcs、Mercurial、RCS、Subversion、SVK、および Monotone をサポート
8. XXdiff – 差分およびマージツール
XXdiff は、Linux、Solaris、HP/UX、IRIX、DEC Tru64 などの Unix 系オペレーティング システム上で動作する、無料の強力なファイルとディレクトリの比較およびマージ ツールです。 XXdiff の制限の 1 つは、Unicode ファイルと diff ファイルのインライン編集がサポートされていないことです。
次の機能リストがあります。
- 2 つ、3 つのファイルまたは 2 つのディレクトリの浅い再帰的比較
- 水平方向の差異の強調表示
- ファイルの対話型マージと結果の出力の保存
- マージレビュー/ポリシングをサポート
- GNU diff、SIG diff、Cleareddiff などの外部 diff ツールをサポート
- スクリプトを使用して拡張可能
- リソース ファイルとその他の多くのマイナー機能を使用して完全にカスタマイズ可能
9. KDiff3 – – 差分およびマージ ツール
KDiff3 は、KDevelop で作られたもう 1 つのクールなクロスプラットフォームの差分およびマージ ツールで、Linux、Mac OS X、Windows を含むすべての Unix 系プラットフォームで動作します。
Linux にKDiff3 をインストールするには、次のようにパッケージ マネージャーを使用できます。
sudo apt install kdiff3 [On Debian, Ubuntu and Mint]
sudo yum install kdiff3 [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kdiff3 [On Gentoo Linux]
sudo apk add kdiff3 [On Alpine Linux]
sudo pacman -S kdiff3 [On Arch Linux]
sudo zypper install kdiff3 [On OpenSUSE]
2 ~ 3 つのファイルまたはディレクトリを比較またはマージでき、次の注目すべき機能があります。
- 行ごと、文字ごとに相違点を示します
- 自動マージをサポート
- マージ競合に対処するための組み込みエディター
- Unicode、UTF-8、その他多くのコーデックをサポート
- 差分を印刷できるようにする
- Windows エクスプローラー統合のサポート
- バイトオーダーマーク「BOM」による自動検出もサポート
- 手動によるラインの位置合わせをサポート
- 直感的な GUI など
10. ティークディフ
TkDiff は、Unix の差分ツール用のクロスプラットフォームで使いやすい GUI ラッパーでもあり、2 つの入力ファイル間の相違点を並べて表示します。 Linux、Windows、Mac OS X 上で実行できます。
さらに、差分ブックマーク、簡単で素早いナビゲーションのための相違点のグラフィカル マップなど、その他の魅力的な機能がいくつかあります。
Linux にTkDiff をインストールするには、次のようにパッケージ マネージャーを使用できます。
sudo apt install tkdiff [On Debian, Ubuntu and Mint]
sudo yum install tkdiff [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tkdiff [On Gentoo Linux]
sudo apk add tkdiff [On Alpine Linux]
sudo pacman -S tkdiff [On Arch Linux]
sudo zypper install tkdiff [On OpenSUSE]
結論
いくつかの優れたファイルとディレクトリの比較ツールとマージ ツールに関するこのレビューを読んだので、おそらくそれらのいくつかを試してみたくなるでしょう。
Linux で利用できる diff ツールはこれらだけではないかもしれませんが、いくつかの最高の機能を提供することが知られています。また、テストして、使用する価値があると思われる他の diff ツールについてもお知らせください。最高のものの一つに挙げられるでしょう。