So organisieren Sie Dateien im Hauptverzeichnis in kleinere Mengen von Dateien in Unterverzeichnissen

So organisieren Sie Dateien im Hauptverzeichnis in kleinere Mengen von Dateien in Unterverzeichnissen

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 dir1usw., 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 kshoder bash.

verwandte Informationen