Формировалось так — когда ОС нужно было переустановить (на случай руткитов и пр.) — все из раб. стола, документов и пр. — выгребалось в папку на внешнем диске как есть — без очистки. Потом если что-то нужно было из этого — находилось (UltraSearch) и копировалось взад.
Таким образом накопилось около 200 Гб. мусора, в котором есть так же вещи уникальные и нужные. Файлов без разархивации — 2 млн. Если разархивировать и попутно удалять архивы-дубликаты — получается вроде 5 млн. файлов.
Было предпринято несколько попыток этот мусор структурировать вручную, но ни одна успехом не увенчалась. При этом одна из попыток привела к дублирование части данных — копировалось из мусора без структуры в структуру (частично удалялось из мусора), но возможно не все было скопировано, а что-то удалено — и теперь и то и другое нужно как бы.
Код хранился в SVN, в основном, при этом серверная копия редко сохранена — есть только промежуточные. Но по сути от каждого проекта нужна только последняя версия.
Там фишка в том, что очень много дубликатов.
Есть архиваторы (типа ZPAQ), который учитывает дубликаты. Но вот можно ли потом удобным образом просматривать содержимое архива, выполнять быстрый поиск и извлекать только часть данных? Вроде нет такого способа.
Попробовал вот что:
1. Сделал XML-дерево с содержимым диска. Получился файл 800 Мб.
2. Выбрал из дерева уникальные записи по хешу — получился CSV-файл 100 Мб. Уникальных файлов на 70 Гб.
3. Добавил возможность сохранить в отдельную папку только уникальные файлы. Разбил на подпапки на основе расшерения файла для удобства.
4. Добавил возможность восстановить из XML-дерева любую папку или файл на основе уникальных с сохранением структуры. Т.е. структура берется из XML, а содержимое файлов оно находит в той общей папке, куда скинуто все.
Вроде удалось ужать до 70 Гб. все это дело, почти фигня получилась.