• 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] Dateiname am Anfang in Unterverzeichnissen ändern

Moin,
ich möchte in Verzeichnissen und Unterverzeichnissen am Anfang des Dateinamens ein Kürzel anhängen.

Am Dateiende kann ich das:
for file in */* do
cp $file $file-RAU;
done

Wenn ich jetzt: cp $file -RAU$file probiere bekomme ich die Pfadangabe dazu: -Rau/*/*/$file <- das geht nicht

Kann mir jemand helfen die Pfadangabe los zu werden?

Vielen Dank
Tom
 
Nö,
geht leider nicht. Gleiche Ausgabe.

Ich habe jetzt rausgefunden, dass das irgendwie mit `basename` funktionieren soll.
 
Hallo Tom,

du musst die Aufgabe in mehrere Teilschritte zerlegen.

1. Mit basename kannst du den Dateinamen extrahieren.
2. Den kannst du um eine Vorsilbe erweitern
3. $file in $neu kopieren
3. In $neu musst du den alten Dateinamen mit dem Erweiterten ersetzen, das geht z.B. mit sed
4. Dann kannst du $file nach $neu kopieren.

Gruß
Georg
 
Code:
#!/bin/bash
app="-Rau"
for file in */*
do
    newname="$(dirname $file)/$app$(basename $file)"
    echo -e "$file\t$newname"
    # mv "$file" "$newname"
done
HTH
 
Jupp, gelöst.
Ich war gestern in der richtigen Richtung unterwegs und habe es mit basename hinbekommen, dass der Name ergänzt wurde.
Für die Lösung, dass die Dateien mit dirname in den jeweiligen Ordnern bleiben bin ich sehr dankbar.

Danke
Tom
 
Oben