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


149

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

主にソース管理を使用するためですが、デプロイにも使用する必要があります。


ファイルリストのみ、または各ファイルの実際の内容が必要ですか?
マーティンUeding

ファイルリストと、可能であれば同じパスを持つファイル間の異なるコンテンツが必要です。
イソマン

2
GUIツールで同一のフォルダーとファイルを非表示にできると便利です。これにより、奇妙なフォルダーとファイルに集中することがはるかに容易になります。この機能をサポートするツールを知っている人はいますか?
JJD

見ていユニゾンを。比較を超えて「ワンストップショップがすべてを行う」アプローチを行いますが、ユニゾンはツリートラバーサルの処理、状態の維持、変更の伝播に焦点を当て、差分、3方向マージなどをあなたのものに委任することで比較機能をカバーしますファイルレベルで動作するお気に入りのプログラム。Unisonは無料で、非常に堅牢で成熟したソフトウェアです。異なるOS間のネットワークなどを介して、巨大なツリーをすばやく検出して同期できます。まず、特にWindowsでドキュメントを読んでください。
ステファンゴーリチョン

emacsにはディレクトリ比較ツールがあります。すべてのemacsと同様に、見た目も「見た目はどういう意味ですか?」とはいえ、キーのコンテキストヘルプを表示し、いくつかのキーストロークで再帰分析を可能にし、同一ファイルまたはサブディレクトリを非表示にし、対話的にファイルを選択して色を表示しますさまざまなオプションとのコード化された違い、ファイルのインタラクティブなマージ、伝播または任意の編集の実行、次のファイルまたはディレクトリへの簡単な移動、状態の追跡、すべての通常の編集機能。
ステファンゴーリチョン

回答:


175

溶けるメルドをインストールする

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

ここに画像の説明を入力してください

また、(例えば、ソース管理システムのロットbzr bzr-gtkをインストールまたはgit gitをインストールする)バージョン間の差分を作成する機能を有しています。


2
溶けは素晴らしい。ソース管理の差分として使用します。
マットジョイナー

12
4 GB、2000ファイルという大きなフォルダーで試してみました。メルドの機能は希望通りです。しかし、このフォルダーの場合、meldは非常に遅く、UIは応答しません(ブロック)。今rsyncを使用しています。
geekQ

1
また、テキストファイルを並べて比較したり、貼り付けたものをコピーすることもできます。私が見た最高のインターフェース!
ステファンロギン14

@geekQは高速な代替手段として、瞬時に必要な大きさのフォルダーを処理できbeyond compareます。以下を参照してください。メルド私見より優れている
phil294

フォルダーを選択する
たびに

44

Diffはあなたの友達です。

diff -ur path1 path2

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

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


1
インストールcolordiffおよび使用colordiff -ur path1 path2
warvariuc 14年

cygwinでは機能しません。
トマーシュザト


13

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

diff -u file1 file2

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

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

diff -u file1 file2 >file1-file2.diff

12

ノームコマンダーGnome Commanderをインストールする

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

代替テキスト

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


1
2つのファイルを比較するために使用したことはありませんが、ディレクトリと比較するときにどのファイルが異なっていたかを伝えるために使用しました。これは、写真を整理するときに特に役立ちます;
ホイヘンス

10

コマンドラインツール

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

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

9

クルセイダークルセーダーをインストールする

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

クルセイダー

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

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


「ツール->ディレクトリの同期」を使用して、2つのディレクトリパネルの再帰的なファイル変更ビューを取得することもできます。
アンジェロスピコラス14

unfortuately krusaderでシンクロナイザはメンテナンスされていないです:bugs.kde.org/show_bug.cgi?id=270150#c7。積極的に維持されている代替手段はありますか?
rubo77 14

1
@ rubo77:このバグは当面修正されました。
mivk

9

KDiff3 kdiff3をインストールする

KDEユーザー向けのdiffへのグラフィカルなフロントエンドです(Qtアプリの使用を気にしない場合)。

kdiff3

ディレクトリ用のdirdiff もありdirdiffをインストールするます。



4

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


4

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

この比較を行う良い方法は、「md5sum」で「find」を使用し、次に「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/

宜しくお願いします!


3

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

それについての詳細情報ここここに、あなたが持っている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%を使用して定期的なバックアップを作成します

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

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

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


3

Diffuseを使用できます。

sudo apt-get install diffuse
diffuse file1 file2

2
マージアンカーを手動で設定する機能-キラー機能の1つに拡散をよく使用します。ディレクトリは(まだ)しませんが、個々の面倒なdiffでは、アンカー機能は素晴らしいです。
Sk606

2

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

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


1
Meldは、diffのGUIです。
マルコセッピ

1

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


1

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

ランチパッドリンク



0

ファイルを比較するには

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.