Cómo organizar archivos en el directorio principal en una cantidad menor de archivos en subdirectorios

Cómo organizar archivos en el directorio principal en una cantidad menor de archivos en subdirectorios

Tengo un directorio de 150 archivos que quería dividir en subdirectorios de 25 archivos cada uno: 1-25 en dir1, 26-50 en dir2, y así sucesivamente. ¿Cómo puedo lograr esto?

dir1/fre_4_g2_c3654214.h3

dir1/fre_4_g2_c0585433.h3

dir1/fre_4_g2_c3565415.h3

... etcétera

y lo que me gustaría hacer es

dir1/fre_4_g2_c3654214.h3

dir2/fre_4_g2_c0585433.h3

dir3/fre_4_g2_c3565415.h3

Respuesta1

Esto ordenará los archivos alfanuméricamente y moverá los primeros 25 archivos al subdirectorio dir0, los 25 siguientes al dir1, etc., hasta que se muevan todos los archivos:

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

Para aquellos que prefieren que sus comandos se distribuyan en varias líneas:

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

Esto funcionará bajo ksho bash.

información relacionada