web-dev-qa-db-ja.com

巨大なディレクトリツリーを比較する最善の方法

巨大なサイズのディレクトリツリーを比較するにはどうすればよいですか?

ファイルシステム構造のスナップショット(ファイルとディレクトリ、それらのサイズとタイムスタンプのリスト)を作成する無料のツールが理想的であり、後で作成した別のスナップショットと比較できると思います。

Treecomp はそのために最適ですが、巨大なツリー(つまり、本当に巨大です!)を使用すると、メモリに保持しようとするためにクラッシュします(4GBのメモリでは不十分です)...

スナップショットを断片に分割し、これらの断片を比較することで、問題を回避しました。しかし、それは退屈であり、問​​題は確かにより良く解決することができます。

私が試すことができる別の無料の(オープンソースでもある)ツールはありますか?それとも私が見落としているこれを行う別の方法はありますか?

OSはLinuxまたはWindowsです。

6
jdehaan

Total Commander (あなたが何をしたいのか理解できたと思います)でそれを行う方法を少し拡張してみます。

  • install DiskDir パッカープラグイン(プラグインへの直接リンクを配置します。必要に応じて、 plugins ページに移動してDiskDirプラグインを探してください。
  • プラグインがインストールされたら、Alt + F5で変更を追跡するディレクトリを「パック」し、ダイアログボックスのPacker部分のドロップダウンリストから「lst」を選択します。これにより、ディレクトリを入力する場合と同じように、Enterキーを押して入力できる「パッケージ」が作成され、ディレクトリの完全な内容が表示されます。
  • 結果を比較するときは、左側のペインの元のディレクトリに移動し、右側のペインに目的のスナップショットを入力します
  • コマンドメニューにある「Dirsの同期」機能を使用します
  • [ディレクトリの同期]ウィンドウで、[内容による比較]のチェックを外し、[サブディレクトリ]と[日付を無視]をオンにして(または変更日が重要な場合は無視して)、比較を実行します
  • ウィンドウには、等しいファイル(この場合は内容ではなくサイズのみ)、異なるファイル、左側/右側に欠落しているファイルが表示されます

スナップショットはプレーンテキストファイルであり、内容ごとに比較していないため、高速である必要がありますが、非常に大きなディレクトリに使用したことはありません。

これは、バックアップを作成していないが、ある時点でディレクトリの内容のスナップショットを作成したい場合に便利です。バックアップを作成する場合は、同じツール(Synchronize dirs)を使用して、内容ごとに比較することもできます。

DiskDirプラグインの 拡張バージョン もあります。ダウンロードリンクは最初の投稿にあります。このバージョンでは、パッケージ(Zip、7z ...など)をスナップショットのディレクトリとして表示できます。もちろん、これによりスナップショットを作成する時間が長くなります。

2
T. Kaltnekar

ターミナルで使用できます

du -a

これにより、サイズを含むすべてのサブフォルダー内のすべてのファイルが返され、ファイルを比較するだけです。

データをテキストファイルに保存するには

du -a > dump.txt

次に、diffのようなものを使用してファイルを比較できます

これはLinux用です:D

7
monkey_p

過去にMD5ハッシュと差分を使用してツリーを比較しました。 遅いですが、日付が信頼できない場合は、変更されたファイルが見つかります。また、移植性があるため、ネットワーク経由でファイルを比較する代わりに、インデックスを転送できます。

find /path/to/check -type f | xargs md5sum > after.txt

diff before.txt after.txt > diffs.txt
3
Chris Nava

1週間前に最初のスナップショットを撮ります。

rsync --archive /the/source/ /var/snapshot1/

次に、2番目のスナップショットを撮ります。

rsync --archive /the/source/ /var/snapshot2/

そしてそれらを比較します:

rsync --archive --list-only /var/snapshot1/ /var/snapshot2/
1
Perleone

コマンドプロンプトを使用して、リストをダンプできます。

DIR /S >Listing1.txt

(必要に応じてオプションを微調整できますが、この基本的な構文で十分です)

2つのリストを比較するには、WinDiffやCompareItなどのファイル比較ツールを使用します。WikiPediaにはそのようなツールのリストがあります: http://en.wikipedia.org/wiki/Comparison_of_file_comparison_tools

1
ssollinger

これは、私が本当に大きなディレクトリツリーを比較するために使用するものです。

rsync --archive --dry-run --verbose /src/directory/ /dst/directory/
1
juangiordana

これは、Total Commanderで、ディレクトリの同期機能を使用して行いました。 2台のドライブにまたがる1.2TBのデータ。

0
user3463

Freecommander 2つの異なるフォルダを比較するオプションがあります。

0
Steef Min

あなたも試すことができます:

カレンのディレクトリプリンタ

Karenのディレクトリプリンタは、ドライブ上のすべてのファイルの名前、ファイルのサイズ、最終変更の日時、および属性(読み取り専用、非表示、システム、およびアーカイブ)を印刷できます。そして今、ファイルのリストは、名前、サイズ、作成日、最終変更日、または最終アクセス日でソートできます。

ファイルリストジェネレータ

FLGは無料のファイルリストジェネレータです。ディレクトリツリーで要求された条件のファイルを検索し、HTML形式のリストを作成します。

0
harrymc

meld を試しましたか?それが巨大な木に良いかどうかはわかりませんが、いつでも試してみることができます:)

Meldは、開発者を対象とした視覚的な差分およびマージツールです。 Meldは、ファイル、ディレクトリ、バージョン管理されたプロジェクトを比較するのに役立ちます。ファイルとディレクトリの両方の双方向および三方向の比較を提供し、多くの一般的なバージョン管理システムをサポートしています。

Meldは、コードの変更を確認し、パッチを理解するのに役立ちます。避け続けているマージで何が起こっているのかを理解するのに役立つかもしれません。

0
Peltier

試しましたか Back In Time

これは、ハードリンクまたはファイルとディレクトリの物理コピーを使用してファイルシステムのスナップショットを作成するGNU/Linuxツールです。

非常に構成可能で、デーモンとGUIパーツが別々に実行されます。

0
atrent

あなたはチェックすることができます 比較を超えて

無料ではありませんが、30日間(インストール後の日数ではなく、稼働日数)テストできます。おそらくそれはあなたの仕事をするのに十分な時間です。

0
knut