Linux как реализовать поиск и перенос файлов в автоматическую структуру каталогов?

Суть в чем, есть более 8 миллионов файлов и папок.... но проблема в том что собраны они в одну папку и структура просто:
../img/
../img/1/file1.jpg
../img/2/file1.jpg
...
../img/12345/file1.doc
../img/12345/file1.jpg
../img/1234567/filerandomname1.jpg
../img/1234567/newfile18.xls


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

возникла мысль - разбить структуру в формат:

../img/1/2/3/4/5/6/7/filerandomname1.jpg

попробовали сделать через php, но скрипт просто висит и обрабатывает по 10к от силы в сутки.......возникла мысль использовать find и mv для ускорения

Есть ли варианты на базе командной строки, bash переделать img/folder/file.doc в img/f/o/l/d/e/r/file.doc
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ComodoHacker
А как будут называться новые каталоги, совсем не важно? Тогда зачем привязываться к старым именам, проще генерировать новые как 1,2,3 и т.д.

P.S. А новая структура не приведет к "невозможности работать нормально", из-за того, что файлы невозможно будет найти?
Ответ написан
2ord
@2ord
Попробуйте мигрировать на S3-совместимые сервисы. Если хотите управлять хостингом своими ресурсами, то возьмите MinIO.
При помощи утилиты mc (minio-client) можно скопировать всю структуру директорий как есть в свой облачный сервис или же в любые S3-совместимые сервисы.
Подключите кэширующий сервер и тогда нагрузка на хранилище спадет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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