5

Как я могу сравнить деревья каталогов огромного размера?

Я думаю, что бесплатный инструмент для создания снимка структуры файловой системы (список файлов и каталогов, их размер и временные метки) был бы идеальным, чтобы я мог сравнить снимок с другим, сделанным позже.

Treecomp был бы хорош для этого, но с огромным деревом (я имею в виду действительно огромный!) происходит сбой, потому что он пытается сохранить его в памяти (4 ГБ памяти недостаточно) ...

Я решил эту проблему, разбив снимки на части и сравнив их. Но это утомительно, и проблему наверняка можно решить лучше.

Есть ли еще один бесплатный (лучше также с открытым исходным кодом) инструмент, который я могу попробовать? Или есть другой способ сделать это, что я пропускаю?

ОС может быть Linux или Windows.

11 ответов11

5

вы можете просто использовать в терминале

du -a

Это вернет все файлы во всех подпапках, включая их размеры, а затем просто сравнит файлы

Сохранить данные в текстовый файл

du -a > dump.txt

Тогда вы можете просто использовать что-то вроде diff для сравнения файлов

Это для Linux:D

2

Я постараюсь немного рассказать о том, как это сделать с помощью Total Commander (надеюсь, я понял, что вы хотите сделать).

  • установить плагин DiskDir Packer (я поставил прямую ссылку на плагин, если вы предпочитаете, вы можете перейти на страницу плагинов и искать плагин DiskDir
  • после установки плагина "упакуйте" каталог, в котором вы хотите отслеживать изменения, с помощью Alt+F5 и выберите "lst" из выпадающего списка в диалоговом окне "Упаковщик"; это создаст "пакет", который вы можете ввести нажатием клавиши ввода, как если бы вы вводили каталог, и он покажет полное содержимое каталога
  • при сравнении результатов перейдите в исходный каталог на левой панели и введите нужный снимок на правой панели
  • использовать функцию "Синхронизировать каталоги", расположенную в меню "Команды"
  • в окне Синхронизировать каталоги снимите флажок сравнивать по содержимому, отметьте Subdirs и Ignore date (или нет, если важна измененная дата) и запустите сравнение
  • окно покажет вам файлы, которые равны (в данном случае не по содержанию, а только по размеру), файлы, которые отличаются и файлы отсутствуют на левой / правой стороне

Поскольку снимок представляет собой простой текстовый файл, и вы не сравниваете его по содержимому, он должен быть быстрым, но я никогда не использовал его для действительно огромного каталога.

Это полезно, если вы не делаете резервные копии, а только хотите сделать снимок содержимого каталога в какой-то момент. Если вы делаете резервные копии, вы можете использовать тот же инструмент (Синхронизировать каталоги), чтобы также сравнить по содержимому.

Существует также расширенная версия плагина DiskDir, ссылка на скачивание находится в первом посте. Эта версия позволяет отображать пакеты (например, zip, 7z ...) в виде каталогов на снимке. Это, конечно, увеличит время, чтобы сделать снимок.

2

Я использовал хеши MD5 и diff для сравнения деревьев в прошлом. Это медленно, но найдет измененные файлы в случаях, когда даты не надежны. Он также переносим, поэтому вы можете передавать индекс вместо сравнения файлов по сети.

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

diff before.txt after.txt > diffs.txt
1

Неделю назад сделайте первый снимок:

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

Теперь сделайте второй снимок:

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

И сравните их:

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

Вы можете просто использовать командную строку для вывода списка:

DIR /S >Listing1.txt

(вы можете настроить параметры, если хотите, но этот базовый синтаксис, вероятно, достаточно хорош)

Для сравнения двух списков используйте любой инструмент сравнения файлов, например, WinDiff, CompareIt и т.д. WikiPedia имеет список таких инструментов здесь: http://en.wikipedia.org/wiki/Comparison_of_file_comparison_tools

0

Я сделал это в Total Commander, используя функцию синхронизации каталогов. 1,2 ТБ данных на двух дисках.

0

Freecommander имеет возможность сравнить две разные папки.

0

Вы также можете попробовать:

Карен Справочник Принтер

Карен Каталог Принтер может распечатать имя каждого файла на диске, а также размер файла, дату и время последнего изменения, а также атрибуты (Только для чтения, Скрытый, Система и Архив)! И теперь список файлов можно сортировать по имени, размеру, дате создания, дате последнего изменения или дате последнего доступа.

Генератор списка файлов

FLG - бесплатный генератор списков файлов. Он ищет в дереве каталогов файлы с запрошенными критериями и создает список в формате HTML.

0

Ты пробовал смешать? Я понятия не имею, хорошо ли это для огромных деревьев, но вы всегда можете попробовать это :)

Meld - это инструмент визуального сравнения и слияния, предназначенный для разработчиков. Meld поможет вам сравнить файлы, каталоги и проекты с управлением версиями. Он обеспечивает двух- и трехстороннее сравнение файлов и каталогов, а также поддерживает многие популярные системы контроля версий.

Meld поможет вам просмотреть изменения кода и понять патчи. Это может даже помочь вам понять, что происходит в этом слиянии, которого вы продолжаете избегать.

0

Вы пробовали Back In Time?

Это инструмент GNU/Linux, который делает снимок файловой системы с помощью жестких ссылок или физических копий файлов и каталогов.

Он очень настраиваемый и имеет части демона и графического интерфейса, которые запускаются отдельно.

0

Вы можете проверить Beyond Compare.

Это не бесплатно, но вы можете протестировать его в течение 30 дней (рабочих дней, а не дней после установки). Возможно, этого времени хватит, чтобы выполнить вашу задачу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .