巨大なサイズのディレクトリツリーを比較するにはどうすればよいですか?
ファイルシステム構造のスナップショット(ファイルとディレクトリ、それらのサイズとタイムスタンプのリスト)を作成する無料のツールが理想的であり、後で作成した別のスナップショットと比較できると思います。
Treecomp はそのために最適ですが、巨大なツリー(つまり、本当に巨大です!)を使用すると、メモリに保持しようとするためにクラッシュします(4GBのメモリでは不十分です)...
スナップショットを断片に分割し、これらの断片を比較することで、問題を回避しました。しかし、それは退屈であり、問題は確かにより良く解決することができます。
私が試すことができる別の無料の(オープンソースでもある)ツールはありますか?それとも私が見落としているこれを行う別の方法はありますか?
OSはLinuxまたはWindowsです。
Total Commander (あなたが何をしたいのか理解できたと思います)でそれを行う方法を少し拡張してみます。
スナップショットはプレーンテキストファイルであり、内容ごとに比較していないため、高速である必要がありますが、非常に大きなディレクトリに使用したことはありません。
これは、バックアップを作成していないが、ある時点でディレクトリの内容のスナップショットを作成したい場合に便利です。バックアップを作成する場合は、同じツール(Synchronize dirs)を使用して、内容ごとに比較することもできます。
DiskDirプラグインの 拡張バージョン もあります。ダウンロードリンクは最初の投稿にあります。このバージョンでは、パッケージ(Zip、7z ...など)をスナップショットのディレクトリとして表示できます。もちろん、これによりスナップショットを作成する時間が長くなります。
ターミナルで使用できます
du -a
これにより、サイズを含むすべてのサブフォルダー内のすべてのファイルが返され、ファイルを比較するだけです。
データをテキストファイルに保存するには
du -a > dump.txt
次に、diffのようなものを使用してファイルを比較できます
これはLinux用です:D
過去にMD5ハッシュと差分を使用してツリーを比較しました。 遅いですが、日付が信頼できない場合は、変更されたファイルが見つかります。また、移植性があるため、ネットワーク経由でファイルを比較する代わりに、インデックスを転送できます。
find /path/to/check -type f | xargs md5sum > after.txt
diff before.txt after.txt > diffs.txt
1週間前に最初のスナップショットを撮ります。
rsync --archive /the/source/ /var/snapshot1/
次に、2番目のスナップショットを撮ります。
rsync --archive /the/source/ /var/snapshot2/
そしてそれらを比較します:
rsync --archive --list-only /var/snapshot1/ /var/snapshot2/
コマンドプロンプトを使用して、リストをダンプできます。
DIR /S >Listing1.txt
(必要に応じてオプションを微調整できますが、この基本的な構文で十分です)
2つのリストを比較するには、WinDiffやCompareItなどのファイル比較ツールを使用します。WikiPediaにはそのようなツールのリストがあります: http://en.wikipedia.org/wiki/Comparison_of_file_comparison_tools
これは、私が本当に大きなディレクトリツリーを比較するために使用するものです。
rsync --archive --dry-run --verbose /src/directory/ /dst/directory/
これは、Total Commanderで、ディレクトリの同期機能を使用して行いました。 2台のドライブにまたがる1.2TBのデータ。
Freecommander 2つの異なるフォルダを比較するオプションがあります。
あなたも試すことができます:
Karenのディレクトリプリンタは、ドライブ上のすべてのファイルの名前、ファイルのサイズ、最終変更の日時、および属性(読み取り専用、非表示、システム、およびアーカイブ)を印刷できます。そして今、ファイルのリストは、名前、サイズ、作成日、最終変更日、または最終アクセス日でソートできます。
FLGは無料のファイルリストジェネレータです。ディレクトリツリーで要求された条件のファイルを検索し、HTML形式のリストを作成します。
meld を試しましたか?それが巨大な木に良いかどうかはわかりませんが、いつでも試してみることができます:)
Meldは、開発者を対象とした視覚的な差分およびマージツールです。 Meldは、ファイル、ディレクトリ、バージョン管理されたプロジェクトを比較するのに役立ちます。ファイルとディレクトリの両方の双方向および三方向の比較を提供し、多くの一般的なバージョン管理システムをサポートしています。
Meldは、コードの変更を確認し、パッチを理解するのに役立ちます。避け続けているマージで何が起こっているのかを理解するのに役立つかもしれません。
試しましたか Back In Time ?
これは、ハードリンクまたはファイルとディレクトリの物理コピーを使用してファイルシステムのスナップショットを作成するGNU/Linuxツールです。
非常に構成可能で、デーモンとGUIパーツが別々に実行されます。
あなたはチェックすることができます 比較を超えて 。
無料ではありませんが、30日間(インストール後の日数ではなく、稼働日数)テストできます。おそらくそれはあなたの仕事をするのに十分な時間です。