dateien_umbenennen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
mato
Beiträge: 59
Registriert: 27.07.2010 22:18:03

dateien_umbenennen

Beitrag von mato » 11.11.2012 13:03:38

Hallo Debianer,

ich brauche einen Tip zur Bash.
Ich moechte Dateien umbenennen und zwar nicht nur im aktuellen
Verzeichnis sondern rekursiv in allen Unterverzeichnissen.
Im aktuellen Verzeichnis ist das klar, aber wie kann ich die
Unterverzeichnisse haendeln.

Gruss aus dem Schwarzen Wald,
Mato

Benutzeravatar
format_c
Beiträge: 188
Registriert: 23.01.2008 14:24:17
Kontaktdaten:

Re: dateien_umbenennen

Beitrag von format_c » 11.11.2012 13:17:44

Einfach find in eine for Schleife packen:

Code: Alles auswählen

for datei in $(find -name 'pattern'); do
    mv $datei ${datei}_neu
done
Gruß Alex
[[ Black Holes are where God devided by 0 ]]

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: dateien_umbenennen

Beitrag von Cae » 11.11.2012 13:32:26

Da bekommt man Probleme mit bekloppten Pfaden, die Leerzeichen enthalten. Stattdessen bietet sich -exec an:

Code: Alles auswählen

$ find /path/to/target -type f -iname 'pattern' -exec mv '{}' '{}_neu' \;
Die Unterschiede: -type f grenzt auf Dateien ein, -iname ignoriert Gross/Kleinschreibung; {} wird durch den aktuellen Dateinamen ersetzt. Das abschliessende \; beendet den Shellbefehl.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

mato
Beiträge: 59
Registriert: 27.07.2010 22:18:03

Re: dateien_umbenennen

Beitrag von mato » 11.11.2012 14:21:31

Hallo Alex,
hallo Cae,

grossartig, das werde ich so schnell wie moeglich ausprobieren.
Find ist der Schluessel zum Erfolg.
Vielen Dank.

Gruss aus dem Schwarzen Wald,
Mato

Antworten