Ну блин. Ща формально правильное решение приведу на тупой вопрос.
Создаём тестовые "фотографии", тысячу штук:
py "(f'{i:04}.img' for i in range(1000))" | xargs -n 1 touch
А вот и наша программа:
#!/bin/bashbin
# Сама создаёт папку:
mkdir my_folder
# И переносит туда 15 фотографий:
ls *.img | head -n 15 | xargs -n 1 mv -t my_folder
Как видите всё возможно.
На какой ОС?
Пор какому принципу выбрать 15 фото из тысячи?
С каким именем создать каталог?
Что, один каталог?
Почему 15 файлов? Всегда 15? Ок, 15 так 15.
Ну что за люди, может они все телепаты, а только я один такой урод, что ситать чуджие мысли не могу на рсстоянии?
UPD.
Даже опечатки исправлять не буду. Прям до трясучки бесит вот такая постановка вопросов.
Такое ощущение, что автору лень даже свой вопрос перечитать, прежде чем запостить, а не то, что погуглить и секунду подумать!
UPD2.
Ну ок, в каментах автор вопроса обмолвился (нечаянно, похоже), что ему надо все файлы распихать по папкам по 15 штук.
Вот, держите:
ls *.img | py -l "(p.mkdir(exist_ok=1) or f.rename(p/f) for p, f in ((pathlib.Path(f'{i//15:03}'), pathlib.Path(f)) for i, f in enumerate(l)))"
Тут
ls *.img
перечисляет все файлы, а однострочник на питоне весь список перебирает, нумерует, создаёт N/15 каталогов (где N - общее количество файлов), и распихивает файлы по этим каталогам: с нулевого (по счету) по четырнадцатый в "000", с 15 по 29 в "001" и т.д.
UPD3.
Ну ок, для винды будет примерно так (попробовать не на чем, но должно работать):
py "(p.mkdir(exist_ok=1) or f.rename(p/f) for p, f in ((pathlib.Path(f'{i//15:03}'), pathlib.Path(f)) for i, f in enumerate(sorted(pathlib.Path('.').glob('*.img')))))"