Я думал об этом вопросе некоторое время и нашел два решения. Лучшим является следующее.
Используйте cdcat - программу, которая может индексировать деревья файловой системы, такие как DVD или жесткие диски (без сохранения больших файлов в индексе), и хранить несколько из них в одном каталоге. Это, вероятно, программа выбора для такой задачи, поскольку она также включает метаинформацию о музыке (теги ID3) и видео (разрешение, продолжительность и т.д.) В каталог. Еще одна приятная особенность заключается в том, что cdcat может вычислять, насколько велика индексированный каталог или файл (узел).
Он сохранит всю мета-информацию (и небольшие файлы, такие как nfo, если вы настроите это для этого) в сжатом XML-файле.
Чтобы скопировать файлы от вас (человека A) кому-то (человеку B), после того, как он (B) выберет то, что он действительно хочет, может работать так:
- Персона А индексирует все свои интересные файлы (вы должны проверить настройки cdcat, прежде чем делать это, чтобы быть уверенным, что будет включено, например, nfo, теги ID3 и т.д.) И сохранить их как один каталог.
- Человек А копирует каталог лицу Б.
- Теперь человек Б должен как-то выбрать файлы. Мне пришла в голову идея использовать поле категории, которое можно добавить к каждому узлу (каталогу или файлу). Это поле может быть использовано в качестве приоритета, например. Любой узел, к которому нет рекурсивно присоединенной категории или со специальной категорией, не будет скопирован позже. Категория также сохраняется в файле XML, и для нее не очень сложно написать анализатор для экспорта, например, сценария .bat или сценария Bash, чтобы скопировать все нужные файлы.
- Человек B передает специальный сценарий копирования ОС человеку A (или, конечно, человек B возвращает измененный каталог и позволяет человеку A создавать сценарий копирования).
- Человек А выполняет сценарий копирования и дает человеку Б носитель данных. (Будет небольшое неудобство, потому что cdcat не сохраняет путь к точке монтирования, откуда данные были проиндексированы в каталоге.)
- Человек B копирует файлы в свое хранилище и передает носитель данных человеку А.
Это решение еще не идеально, но это лучшее, что я придумал. Я еще не использовал это, но я сделаю это в будущем. Во время этого мне нужно будет написать расширение или скрипт, который генерирует скрипты копирования для Linux и для Windows. Я планирую включить это непосредственно в программу cdcat.
Второе и более сложное решение, которое заслуживает наставничества, - это использовать git-annex, который, вероятно, также можно использовать для этого, но я не думал об этом так же осторожно, как о решении с cdcat, потому что этот второй подход каким-то образом потребует, чтобы оба человека (A и B) имеют git-приложение и знают, как его использовать…
Я буду держать вас в курсе.