• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Terminal-Endlosthread

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Da es hier noch nicht genügend Endlosthreads gibt, starte ich hiermit mal einen neuen. Thema: Kurze Frage, kurze Antwort zum Thema tägliche Command-Line-Probleme.

Folgendes Problem:
Ich habe ein Verzeichnis mit Zehntausenden von Dateien, flach, keine Unterverzeichnisse. Diese sollen jetzt jeweils in ein Unterverzeichnis verschoben werden, das mit dem ersten Buchstaben des Dateinamens beginnt. Also Alpha kommt in A, Beta in B usw. (Kür: das ganze case-in-sensitive, alpha soll also auch in A).

Wer kann helfen?
 
Zuletzt bearbeitet:
ich glaube nicht, dass das Sinn macht - außerdem gibt es dazu schon Doku.
Im Prinzip brauchst Du nur man find eingeben.
 
tschuldige, so meine ich das nicht. Nur hat das Problem exakt gar nichts mit dem Terminal zu tun. Das Terminal ist ja nur ein Dienstprogramm, um eine Shell zu erhalten - und zur Shell in all ihren Variationen gibt es nun wirklich genug Doku, die unter uns gesagt auch dabei ist.
 
/dest gibt den Pfad zu einem leeren Zielverzeichnis an, wohin die Dateien aus /src verschoben werden. Für einen ersten Testlauf kann natürlich der mv Befehl durch cp (kopieren) ersetzt werden.

Code:
for i in {A..Z}; do mkdir /dest/$i; find /src -type f -iname "$i*" -exec mv {} /dest/$i/ \; ; done