
Ich habe ein Verzeichnis mit 150 Dateien, das ich in Unterverzeichnisse mit jeweils 25 Dateien aufteilen möchte: 1-25 in Verzeichnis1, 26-50 in Verzeichnis2 usw. Wie kann ich das erreichen?
dir1/fre_4_g2_c3654214.h3
dir1/fre_4_g2_c0585433.h3
dir1/fre_4_g2_c3565415.h3
... und so weiter
und was ich tun möchte, ist
dir1/fre_4_g2_c3654214.h3
dir2/fre_4_g2_c0585433.h3
dir3/fre_4_g2_c3565415.h3
Antwort1
Dadurch werden die Dateien alphanumerisch sortiert und die ersten 25 Dateien in das Unterverzeichnis verschoben dir0
, die nächsten 25 nach dir1
usw., bis alle Dateien verschoben sind:
n=0; for f in *; do d="dir$((n++ / 25))"; mkdir -p "$d"; mv -- "$f" "$d/$f"; done
Für diejenigen, die ihre Befehle lieber auf mehrere Zeilen verteilt haben:
n=0
for f in *
do
d="dir$((n++ / 25))"
mkdir -p "$d"
mv -- "$f" "$d/$f"
done
Dies funktioniert entweder unter ksh
oder bash
.