• 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

fetimo

Newbie
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
 
OP
F

fetimo

Newbie
Nö,
geht leider nicht. Gleiche Ausgabe.

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

P6CNAT

Advanced Hacker
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
 

abgdf

Guru
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
 
OP
F

fetimo

Newbie
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