[gelöst]Umbenennen für Unterordner?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
muckelfloh
Beiträge: 234
Registriert: 14.05.2010 20:47:21
Lizenz eigener Beiträge: GNU Free Documentation License

[gelöst]Umbenennen für Unterordner?

Beitrag von muckelfloh » 19.07.2011 08:19:36

So, Dank dieses Forums kann ich nun mit Hilfe von

Code: Alles auswählen

rename y/-/_/ *
meine Daten so umbenennen wie ich das gerne hätte.
Jedoch habe ich festgestellt dass das nur im aktuellen Ordner angewandt wird. Gibt es eine Möglichkeit auch alle Unterordner einzubeziehen?

Und eine weitere Frage dazu:

Ich habe mehrere Ordner a la "autoren_x". Nun kann ich in den Ornder alles umbenennen, nur der Ordner autoren_b macht mir Kummer, es erscheint folgende Fehlermeldung:

Code: Alles auswählen

x@laptop:/home/x/books/autoren_b$ rename y/A-Z/a-z/ *
Unknown option: b
Unknown option: b
Unknown option: b
Unknown option: b
Usage: rename [-v] [-n] [-f] perlexpr [filenames]
Wie gesagt, bei den anderen Ordnern, wie zB autoren_a, funktioniert es.
Weiß jemand wieso die Meldung erscheint?
Zuletzt geändert von muckelfloh am 19.07.2011 09:39:03, insgesamt 1-mal geändert.

uname
Beiträge: 12419
Registriert: 03.06.2008 09:33:02

Re: Umbenennen für Unterordner?

Beitrag von uname » 19.07.2011 08:48:41

Ich denke du musst "rename" mit "find" und "-execdir" einsetzen:

Code: Alles auswählen

find /pfad/ab/irgendwo -type f -execdir rename 'y/A-Z/a-z/' '{}' \;

Benutzeravatar
muckelfloh
Beiträge: 234
Registriert: 14.05.2010 20:47:21
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Umbenennen für Unterordner?

Beitrag von muckelfloh » 19.07.2011 08:57:19

Zunächst vielen Dank für die Hilfe, aber...

was muss ich bei /pfad/ab/irgendwo einfügen?

uname
Beiträge: 12419
Registriert: 03.06.2008 09:33:02

Re: Umbenennen für Unterordner?

Beitrag von uname » 19.07.2011 09:02:50

Der Pfad wo die umzunennenden Dateien rumliegen. Entweder ein einzelnes Verzeichnis oder ein Oberordner. Geändert wird rekursiv über die gesamte Verzeichnisstruktur ab dem Verzeichnis. Alternativ kannst du auch "." für den aktuellen Ordner wählen.

Code: Alles auswählen

man find

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Umbenennen für Unterordner?

Beitrag von rendegast » 19.07.2011 09:06:12

Code: Alles auswählen

x@laptop:/home/x/books/autoren_b$ rename y/A-Z/a-z/ *
Unknown option: b
Unknown option: b
Unknown option: b
Unknown option: b
Da werden wohl einige Dateien mit Namen "-b....." sein.

Pseudo-rekursiv mit

Code: Alles auswählen

rename y/A-Z/a-z/  ./*  ./*/*  ./*/*/*  ./*/*/*/*
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

uname
Beiträge: 12419
Registriert: 03.06.2008 09:33:02

Re: Umbenennen für Unterordner?

Beitrag von uname » 19.07.2011 09:15:30

Ich kenn mich ja mit "rename" nicht aus aber kann man nicht auch dort irgendwie Anführungszeichen oder sonstwas rumbauen, dass der Originalbefehl funktioniert? Ich denke Leerzeichen und andere Sonderzeichen hätte man in Dateinamen nie erfinden dürfen.

Benutzeravatar
muckelfloh
Beiträge: 234
Registriert: 14.05.2010 20:47:21
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Umbenennen für Unterordner?

Beitrag von muckelfloh » 19.07.2011 09:19:47

@Uname: Man o man... das ab und irgendwo hatte mich irritiert. Ich habe das nun ausgeführt, hat recht lange gedauert, aber geändert hat es absolut NICHTS.
Ich bin ins Rootverzeichnis und habe

Code: Alles auswählen

find /home/user/books -type f -execdir rename 'y/A-Z/a-z/' '{}' \;
eingegeben. Hat nix geändert. Wo liegt mein Fehler???

@rendegast: Ja, klar, aber es waren ja auch einige Dateien mit a und c und d und... und..... . Wieso klappt das bei B nicht?

Benutzeravatar
muckelfloh
Beiträge: 234
Registriert: 14.05.2010 20:47:21
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Umbenennen für Unterordner?

Beitrag von muckelfloh » 19.07.2011 09:24:45

uname hat geschrieben: Ich denke Leerzeichen und andere Sonderzeichen hätte man in Dateinamen nie erfinden dürfen.
:THX: Die versuche ich ja gerade auszumerzen :mrgreen:

@renegast: Ich versteh zwar nicht was du da getippt hast, aber es hat geklappt :mrgreen:

VIELEN DANK!!!!!!

Benutzeravatar
muckelfloh
Beiträge: 234
Registriert: 14.05.2010 20:47:21
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Umbenennen für Unterordner?

Beitrag von muckelfloh » 19.07.2011 09:38:38

@renegast: Ich habe soeben bemerkt dass sich die Änderungen auch auf alle Unterordner beziehen.

VIELEN DANK für Eure Hilfe!!!

uname
Beiträge: 12419
Registriert: 03.06.2008 09:33:02

Re: Umbenennen für Unterordner?

Beitrag von uname » 19.07.2011 09:40:21

Hat nix geändert. Wo liegt mein Fehler???
Keine Ahnung. Hätte eigentlich funktionieren sollen.

Code: Alles auswählen

rename y/A-Z/a-z/  ./*  ./*/*  ./*/*/*  ./*/*/*/*
"rename" erlaubt als Parameter für Dateien am Ende mehrere Werte, die durch Leerzeichen getrennt sind.
"." bedeutet das aktuelle Verzeichnis, "./*" bedeutet alle Dateien im aktuellen Verzeichnis ähnlich wie "*". "./*/*" entspricht im Prinzip "*/* also die zweite Verzeichnisebene usw. Solltest du mehr als 4 Ebenen haben so wurden die Dateien nicht mehr geändert.

Vorteil von "./*" gegenüber "*" ist im übrigen die Tatsache, dass dann keine Suchpfade (echo $PATH) genutzt werden, ist aber eigentlich nur wichtig bei ausführbaren Dateien. Ist aber so eindeutiger.

Benutzeravatar
muckelfloh
Beiträge: 234
Registriert: 14.05.2010 20:47:21
Lizenz eigener Beiträge: GNU Free Documentation License

Re: [gelöst]Umbenennen für Unterordner?

Beitrag von muckelfloh » 19.07.2011 09:45:56

@uname: Hammer gut erklärt, genau richtig für meine DAU-Seele.... :hail:

VIELEN DANK!!!!!

Antworten