web-dev-qa-db-ja.com

ファイルとディレクトリの比較ツール?

Beyond Compareがウィンドウに対して行うような、ディレクトリとファイルを比較するものを探しています。

主にソース管理の使用に使用しますが、展開にも使用する必要があります。

147
DevelopingChris

メルドinstall meld

Meldは、ファイルとディレクトリを比較およびマージできるツールです。これは、標準のdiffinstall diffutils およびpatchinstall patch コマンドラインツール。 (これらの詳細については man diff および manパッチ を参照)

enter image description here

また、多くのソース管理システム(bzrなど)install bzr-gtk またはgitinstall git )バージョン間の差分を作成する機能があります。

174
dv3500ea

Diffはあなたの友達です。

diff -ur path1 path2

これにより、path1とpath2の間で共通するすべてのファイルが比較されます。

-ur-urNに変更すると、いずれかのパスにのみ存在するファイルの内容も表示されます。

43
Richm

「Beyond Compare」はLinuxでも利用可能です。

ダウンロードURLを確認してください: http://www.scootersoftware.com/download.php

21
aneeshep

diff コマンドを使用します。

diff -u file1 file2

diff -uは、数行のコンテキストを持つ形式を選択します。プレーンdiff file1 file2は、異なる行のみをリストします。出力形式を制御したり、空白のみの違いを無視したりするためのオプションがさらにあります。

出力をファイルに書き込みたい場合は、リダイレクトします:

diff -u file1 file2 >file1-file2.diff
13
Gilles

Gnome Commanderinstall Gnome Commander

インターフェイスは本当にセクシーではないかもしれませんが、非常に強力です!

alt text

また、他の* Commander(ノートンなど)に慣れていれば、失われることはありません。

12
Huygens

コマンドラインツール

このブログエントリ に触発されました。

diff

さまざまなファイルのリスト:

diff -qr folder1 folder2

コンテンツも一覧表示:

diff -Naur folder1 folder2

rsync

2つのディレクトリが同じマシン上にない場合、rsyncが最も簡単な解決策になる可能性があります。通常、rsyncはディレクトリを同期するために使用されますが、詳細モードとドライモードで実行できるため、変更する必要があるファイルのみがリストされます。

rsync -rvnc --delete folder1 server:/path/to/folder2

タイムスタンプとファイルサイズに基づいてファイルを比較してすべてを高速化する場合は、cを省略できます。

rsync -rvn --delete folder1 server:/path/to/folder2
10
lumbric

KDiffinstall kdiff3

KDEユーザー向けのdiffへのグラフィカルなフロントエンドです(またはQtアプリを使用してもかまいません)。

kdiff3

dirdiffinstall dirdiff ディレクトリの場合。

9
tinhed

クルセイダーinstall krusader

Krusaderは無料のツール(ソフトウェアセンターで利用可能)で、フォルダーの内容を比較して表示し、さまざまなオプションと同期できます。同期および比較しながらフィルタリングできます。

Krusader

ファイルの内容を比較するには、2つのファイルをマークするだけで、「ファイル」>「コンテンツの比較」を選択すると、文字ごとに比較されます。 krusaderが使用するデフォルトの比較ツールは、デフォルトのKDEツール「Kompare」です。上記のいずれかのような、他の比較ツールを使用するようにkrusaderを設定できます。

これは私が見つけた最も完全なソリューションであり、非常に便利です。また、真夜中の司令官が使用するすべての関数keybindungsをサポートしています(ノートンの司令官の構文)。

9
piedro

多分 Meld はあなたが探しているものです。または here は他の選択肢です。

6
sagarchalise

Unisonは、rsyncアルゴリズムを使用する高速ファイル同期ツールであり、リモートまたはローカルの2つの場所の間で更新する前に違いをプレビューできます。

4
Rog

この比較を行う良い方法は、「find」と「md5sum」を使用し、次に「diff」を使用することです。

例:

Findを使用してディレクトリ内のすべてのファイルをリストし、各ファイルのmd5ハッシュを計算して、ファイルにパイプします。

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

別のディレクトリに対して同じ手順を実行します。

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

次に、結果の2つのファイルを「diff」と比較します。

$diff dir1.txt dir2.txt

この戦略は、比較する2つのディレクトリが同じマシンになく、両方のディレクトリでファイルが等しいことを確認する必要がある場合に非常に役立ちます。

ジョブを実行する別の良い方法は、gitを使用することです

git diff --no-index dir1/ dir2/

宜しくお願いします!

4
Adail Junior

hashdeep について2週間前に学びました。そして、いくつかの強力な利点があります。

  • meldとは対照的に、非常に大きなフォルダーに適しています。 meldが極端に遅くなり、UIが応答しなくなる(ブロックされる)場合、hashdeepは一定の速度で動作します
  • rsyncとは対照的に、hashdeepは移動されたファイル(同じディレクトリにある同じコンテンツのファイル)を検出します。

詳細な出力は次のとおりです。

...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG

hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 6233
Files partially matched: 0
            Files moved: 3695
        New files found: 19257
  Known files not found: 4713
4
geekQ

FreeFileSync も試してください。適切なインターフェース、許容可能な比較速度、比較結果の良好なフィルタリング、異なる同期方法があります。フォルダー監視ツール(RealTimeSync)が付属しており、特定のフォルダー(またはフォルダー)またはその中のファイルが変更されたときにFreeFileSync(実際にはコマンドまたはスクリプト)を起動できます。本当に試してみる価値があります。

それに関する詳細情報 here または here 、ここで PPA もあります

彼らのページから、主な機能:

ファイルを(バイト単位または日付で)比較し、同期します。

制限なし:任意の数のファイルを同期できます。

Unicodeサポート。

ネットワークのサポート。

非常に長いファイル名(MAX_PATH = 260文字以上)の組み込みサポート。

削除されたファイルの伝播と競合検出のための同期データベース

個別の構成を持つ複数のフォルダーペアのサポート

Windows/LinuxシンボリックリンクおよびWindowsジャンクションポイントの完全サポート。

無駄のない簡単にアクセス可能なUI:速度と膨大なデータセットに対して高度に最適化されています。

C++で完全にコーディングされたアルゴリズム。

最大のパフォーマンスのために最適化されたすべての進行状況インジケーター!

GUIを使用して、または使用せずに自動同期を行うバッチジョブを作成します。

ユーザビリティに焦点を当てる:

UIに必要な機能のみ:オーバーロードされたメニューやアイコンジャングルはありません。

ドラッグアンドドロップですべてのフォルダーを選択します。

最後に使用した構成と画面設定は自動的に保存されます。

ドラッグアンドドロップ、ロードボタン、またはコマンドラインにより、さまざまな構成を維持およびロードします。

ダブルクリックして外部アプリケーションを起動します(Windowsエクスプローラーでファイルを表示するなど)

すべてのグリッドデータをテキストとしてコピーして貼り付けます

メイングリッドで不要なファイルまたは一時ファイルを直接削除します。

コンテキストメニューを右クリックします。

包括的なステータス情報とエラー報告

ファイルリストを名前、サイズ、または日付で並べ替えます。

4 GBを超えるファイルサイズのサポート。

ファイルを削除/上書きするのではなく、ごみ箱に移動するオプション。

デフォルトのフィルタを使用して、ディレクトリ「\ RECYCLER」および「\ System Volume Information」を無視します。 (Windowsのみ)

ローカライズされたバージョンは多くの言語で利用可能です。

コピー前に削除:大規模な同期ジョブのディスク容量不足を回避します。

同期からファイルを含める/除外するためのフィルター機能(再比較を必要としない!)。

特定のファイルを一時的に同期に含める/除外します。

FAT/FAT32ボリュームの夏時間の変更を自動的に処理します。

利用可能なポータブルバージョン(インストーラーで選択可能)。

ネイティブ64ビットバージョン。

FreeFileSync内から自動的に更新を確認します。

Windowsボリュームシャドウコピーサービスを使用してロックされたファイルをコピーします。 (Windowsのみ)

ディレクトリ名内にマクロ%time%、%date%を使用して定期的なバックアップを作成します

同期時にファイルとフォルダーの作成/アクセス/変更時間をコピーします

複数の同期プロセス(複数のライター、同じネットワーク共有など)を可能にする高度なロック戦略

削除したファイルを管理し、ごみ箱またはユーザーが指定したフォルダーに移動できるように追加します。不利な点を指摘すると、プログラムのドキュメントはWindowsではなくLinuxに焦点を当てています。しかし、それはうまく機能します。

3
luri

Diffuseを使用できます:

Sudo apt-get install diffuse
diffuse file1 file2
3
metdos

meld を試すことができます。

これはリポジトリーであり、ファイルまたはフォルダーを比較するためのGUIを提供します。

2
Pavlos G.

Eclipse IDEは、比較するだけの場合は少し重量がありますが、他のことも含めて、それはうまく機能します。 2つのプロジェクト、パス、またはファイルを選択して互いに比較したり、ソース管理サーバーと同期したりできます。

1
Rog

私見FreeFileSyncは非常に優れており、Meldよりも便利です。高速で安定しており、コストのかかる同期を実行でき、比較の結果をcsvファイルにエクスポートすることもできます。

ランチパッドリンク

1
Reza

ファイルを比較するには

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

コマンド cmp を使用できます。

cmp -b "File_1.txt" "File_2.txt"

出力は

a b differ: byte 11, line 2 is  62 2  40  

Dirs(あなたの必要性)を比較するには:

diff コマンドを使用できます:

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
0
Maythux

クロスプラットフォーム、簡単、大騒ぎなし、プロファイル保存機能 Jfilesync 私の一番の選択

0
nightcrawler