Como organizar arquivos no diretório principal em uma quantidade menor de arquivos em subdiretórios

Como organizar arquivos no diretório principal em uma quantidade menor de arquivos em subdiretórios

Eu tenho um diretório de 150 arquivos que queria dividir em subdiretórios de 25 arquivos cada: 1-25 em dir1, 26-50 em dir2 e assim por diante. Como posso fazer isso?

dir1/fre_4_g2_c3654214.h3

dir1/fre_4_g2_c0585433.h3

dir1/fre_4_g2_c3565415.h3

... e assim por diante

e o que eu gostaria de fazer é

dir1/fre_4_g2_c3654214.h3

dir2/fre_4_g2_c0585433.h3

dir3/fre_4_g2_c3565415.h3

Responder1

Isso classificará os arquivos alfanumericamente e moverá os primeiros 25 arquivos para o subdiretório dir0, os próximos 25 para dir1, etc., até que todos os arquivos sejam movidos:

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

Para quem prefere seus comandos espalhados por várias linhas:

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

Isso funcionará em kshou bash.

informação relacionada