• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Ordner mehrfach umbenennen

Hallo,

ich möchte gerne in einem Verzeichnis alle Unterzeichnisse umbenennen (und nur in dieser Ebene, also nicht rekursiv) nach dem folgenden Muster:

Code:
<Verzeichnisname>
ändern nach
Code:
20_<Verzeichnisname>
Dabei ist <Verzeichnisname> unterschiedlich lang und weist kein besonderes Muster auf, bzw. anders ausgedrückt: Alle Unterverzeichnisse sollen ihren bisherigen Namen beibehalten, aber eben am Anfang mit 20_ beginnen.

Zu dieser Problemstellung habe ich sowohl das Internet als auch hier im Forum schon gesucht, nur zielen die Beispiele meist entweder auf Datei-Umbenennung ab oder wenn es mal um Verzeichnisse geht, dann konnte ich diese nicht auf meinen Fall ableiten. Deshalb bitte ich hier um Hilfe.

Gruß, Hengstenberg
 
mmv ist das Tool was Du suchst. Wenn Du danach suchst,findest Du eine ältere Anleitung von 'ner Zeotschrift, die recht brauchbar ist.
 
Hallo,

hier ein 3-Zeiler mit Standard Bordmitteln. Mit cut und paste ausprobieren.
Achtung! Funktioniert leider nicht, wenn ein Verzeichnisname Leerzeichen enthält.

Code:
# Liste der Verzeichnisse erstellen
verzeichnisliste=`ls -l | grep ^d | awk '{print $9}'`

# Simulation mit Anzeige des Befehls
for x in $verzeichnisliste; do echo "mv $x 20_$x"; done

# Jetzt wirds ernst!
for x in $verzeichnisliste; do mv $x 20_$x; done
Grüße
Georg
 
A

Anonymous

Gast
Hengstenberg schrieb:
Zu dieser Problemstellung habe ich sowohl das Internet als auch hier im Forum schon gesucht, nur zielen die Beispiele meist entweder auf Datei-Umbenennung ab oder wenn es mal um Verzeichnisse geht, dann konnte ich diese nicht auf meinen Fall ableiten. Deshalb bitte ich hier um Hilfe.

Verzeichnisse sind auch nur Dateien ;)
Code:
cd  VERZEICHNIS
for i in $(find . -maxdepth 1 -type d); do VER=$(basename $i) ; if [ $i = "." ];then continue;fi; echo "$VER"  20_"$VER" ; done
der Befehl ändert erstmal noch nichts, das Ergebnis anschauen, es sollten in jeder Zeile erst der orginale Verzeichnisname stehen und mit Leerzeichen getrennt dann der gewünschte neue Verzeichnisname.
zeilenweise überprüfen, ob da nicht was dabei ist was nicht umbenannt werden soll, wenn alles passt, dann aus der Kommandozeile das "echo" durch "mv" ersetzen.

robi
 
Besten Dank für schnellen Antworten!

Habe mich für die Lösung von robi entschieden, die auch ohne Probleme zum Ziel geführt hat. Vor allem die "echo"-Version macht diesen Einzeiler sehr transparent!
Die Lösung von P6CNAT ist natürlich gleich/ähnlich. Deshalb Dank an alle, die sich Mühe gemacht haben zu helfen!

Grüße, Hengstenberg
 
Oben