Как организовать файлы в главном каталоге в меньшее количество файлов в подкаталогах

Как организовать файлы в главном каталоге в меньшее количество файлов в подкаталогах

У меня есть каталог из 150 файлов, которые я хочу разбить на подкаталоги по 25 файлов в каждом: 1-25 в dir1, 26-50 в dir2 и т. д. Как мне это сделать?

dir1/fre_4_g2_c3654214.h3

dir1/fre_4_g2_c0585433.h3

dir1/fre_4_g2_c3565415.h3

... и так далее

и что я хотел бы сделать, это

dir1/fre_4_g2_c3654214.h3

dir2/fre_4_g2_c0585433.h3

dir3/fre_4_g2_c3565415.h3

решение1

Это отсортирует файлы в алфавитно-цифровом порядке и переместит первые 25 файлов в подкаталог dir0, следующие 25 — в dir1и т. д., пока все файлы не будут перемещены:

 n=0; for f in *; do d="dir$((n++ / 25))"; mkdir -p "$d"; mv -- "$f" "$d/$f"; done

Для тех, кто предпочитает размещать команды в нескольких строках:

n=0
for f in *
do
    d="dir$((n++ / 25))"
    mkdir -p "$d"
    mv -- "$f" "$d/$f"
done

Это будет работать как под , так kshи под bash.

Связанный контент