
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 ksh
o bash
.