Как можно визуально сравнить две большие директории?

У меня был огромный каталог всевозможных вещей, от семейных фотографий до репозиториев git и программ с тысячами видимых и скрытых файлов, которые были синхронизированы на ~ 10 компьютерах. Я был вынужден перейти из Dropbox в Nextcloud, чтобы синхронизировать этот огромный каталог со всеми этими компьютерами.

Я обнаружил, что Nextcloud удалил огромное количество файлов, начиная от скрытых файлов и заканчивая .tex файлами. Я продолжаю пытаться понять, почему это произошло, и спросил на соответствующем форуме Nextcloud, и мне повезло иметь резервную копию каталога Dropbox .

SO ...

Учитывая, что у меня есть эти две огромные, сложные директории с миллионами файлов в них, как я могу сравнить их визуально, как человек, чтобы попытаться понять ущерб, нанесенный Nextcloud? Как я могу понять, что Nextcloud стирает?

В основном мне нужно что-то большое, ясное и наглядное, как gdmap, смешанное с tkdirdiff.

Я прошу руководство и предложения.

0
задан 21 November 2018 в 20:13

3 ответа

С миллионами файлов я бы создал контрольную сумму для каждого файла NextCloud.

Затем я бы добавил каждую контрольную сумму в базу данных SQLite .

Затем я написал бы скрипт, который сканировал каждый файл в каталоге клиента. Этот скрипт будет запускаться на каждом из 10 компьютеров с изображениями / видео:

  • Создать контрольную сумму для каждого файла.
  • Проверка контрольной суммы в базе данных SQLite.
  • Если контрольная сумма не найдена, скопируйте файл в Nextcloud.

Я бы НЕ сравнивал файлы по дате и времени, так как они могли измениться при заполнении Nextcloud.

1
ответ дан 21 November 2018 в 20:13

С миллионами файлов вы действительно не хотите визуально проверять различия. Сочетание программы подойдет для меньшего числа файлов, но вы должны продумывать все, что касается отчетов от sort и uniq. Подготовьте списки из общей начальной точки каталога, чтобы пути были идентичными (команда find найдет такой список завершенных путей), отсортируйте два списка вместе и используйте uniq для создания отчетов по недублированным строкам. (Убедитесь, что все uniq файлы из одного списка, а не между двумя). Решите, как вы хотите скопировать отсутствующие файлы в другое место.

0
ответ дан 21 November 2018 в 20:13

У меня просто было то же, происходят со мной при перемещении от локального устройства хранения данных до NAS: была разница в размерах, и я сделал следующее:

stat -c "%s %n" /media/Data/ > /tmp/DSK
stat -c "%s %n" /media/NAS/ > /tmp/NAS

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

В моем случае только один файл отличался, и он копирует, поскольку я пишу это, но в Вашем случае Вы могли бы хотеть удалить имена каталогов файлов:

sed 's/\/media\/Data//g' /tmp/DSK > /tmp/DSK_Files
sed 's/\/media\/NAS//g'  /tmp/NAS > /tmp/NAS_Files

и позвольте оболочке выяснить различия:

diff --context=0 /tmp/DSK_Files /tmp/NAS_Files
2
ответ дан 27 October 2019 в 04:11

Другие вопросы по тегам:

Похожие вопросы: