• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

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