@ali3412
Веб-мастер

Как раскидать файлы по папкам в?

В одной папке огромное кол-во файлов. Нужно раскидать их по разным папкам, любым, не важно. Задача: избежать наличия большого пака файлов в одной директории.

В доступе есть операционки: ubuntu 16, windfows 10 и mac os.
  • Вопрос задан
  • 431 просмотр
Решения вопроса 1
@Vitsliputsli
count=100; i=0; find . -maxdepth 1 -type f | while read f; do n=$[i/c+1]; i=$[i+1]; mkdir -p "$n" && mv "$f" "$n/$f"; done

берутся только файлы из текущей директории, и перемещаются во вновь созданные директории (1,2,3 и т.д.). "count=100" - кол-во файлов в каждой директории
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Jump
@Jump Куратор тега Windows
Системный администратор со стажем.
Как раскидать файлы по папкам?
Элементарно.
Считаем хэш файла и записываем в папку по первм символам хэша.

Например хэш D41D8CD98F00B204E9800998ECF8427E значит файл пишем в папку D
В итоге файлы будут раскиданы по шестнадцати папкам с именами от 0 до F
Или пишем файла в папку D и подпапку 4.
В итоге файлы будут раскиданы по шестнадцати папкам с именами от 0 до F и в каждой папке будет шестнадцать вложенных папок.
Или можно записать в папку D4 тогда файлы будут раскиданы по 256папкам.
В общем по первым буквам хэша.

Поскольку хэш сущность псевдослучайная, то распределение по папкам будет достаточно равномерным.
Такой подход используется во многих системах хранения данных.
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Баш, циклы, mkdir, mv.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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