![](https://seccdn.libravatar.org/avatar/977618b4c228834d9a67f0c8fc5f7b7e.jpg?s=120&d=mm&r=g)
Hallo Liste Weiss jemand wie ich mehrere Dateien und Verzeichnisse, so umbenennen kann, das alles klein geschrieben ist? Wie ich Dateien einzelnd umbenennen kann weiss ich, aber ich muesste ca. 1000 Dateien und dementsprechend auch Unterverzeichnisse umbenennen!! Schon mal vielen Dank MFstenG Tobias
![](https://seccdn.libravatar.org/avatar/633b79060e151e276100d38ce8f733e2.jpg?s=120&d=mm&r=g)
Hi, On Fri, Feb 09 2001 at 09:19 +0100, Tobias Wilken wrote:
Weiss jemand wie ich mehrere Dateien und Verzeichnisse, so umbenennen kann, das alles klein geschrieben ist? Wie ich Dateien einzelnd umbenennen kann weiss ich, aber ich muesste ca. 1000 Dateien und dementsprechend auch Unterverzeichnisse umbenennen!!
for d in $(find -depth -type d); do (cd $d && mmv -r "*" "#l1"); done Ciao, Stefan -- Stefan Troeger o _ _ _ stefan@troeger.st __o __o /\_ _ \\o (_)\__/o (_) _`\<, _`\<, _>(_) (_)/<_ \_| \ _|/' \/ (_)/(_) (_)/(_) (_) (_) (_) (_)' _\o_
![](https://seccdn.libravatar.org/avatar/977618b4c228834d9a67f0c8fc5f7b7e.jpg?s=120&d=mm&r=g)
Weiss jemand wie ich mehrere Dateien und Verzeichnisse, so umbenennen kann, das alles klein geschrieben ist? Wie ich Dateien einzelnd umbenennen kann weiss ich, aber ich muesste ca. 1000 Dateien und dementsprechend auch Unterverzeichnisse umbenennen!!
for d in $(find -depth -type d); do (cd $d && mmv -r "*" "#l1"); done
Ich denke mal, das diese Zeile, mit Problem loesen sollte!! Schon mal vielen Dank, aber es kommt bei mir die Meldung "bash: mmv: command not found bash: mmv: command not found" Ich denke mal, dass mir der Befehl "mmv" fehlt, kannst Du mir noch sagen in welchem Paket der ist, dann waere ich gluecklich. MFstenG Tobias
![](https://seccdn.libravatar.org/avatar/633b79060e151e276100d38ce8f733e2.jpg?s=120&d=mm&r=g)
Hi, On Fri, Feb 09 2001 at 10:17 +0100, Tobias Wilken wrote:
for d in $(find -depth -type d); do (cd $d && mmv -r "*" "#l1"); done
Ich denke mal, das diese Zeile, mit Problem loesen sollte!! Schon mal vielen Dank, aber es kommt bei mir die Meldung
"bash: mmv: command not found bash: mmv: command not found"
Ich denke mal, dass mir der Befehl "mmv" fehlt, kannst Du mir noch sagen in welchem Paket der ist, dann waere ich gluecklich.
mmv ist im gleichnamigen Paket. Ciao, Stefan -- Stefan Troeger o _ _ _ stefan@troeger.st __o __o /\_ _ \\o (_)\__/o (_) _`\<, _`\<, _>(_) (_)/<_ \_| \ _|/' \/ (_)/(_) (_)/(_) (_) (_) (_) (_)' _\o_
![](https://seccdn.libravatar.org/avatar/777bdd74a17749c5f76c862b8323e1fe.jpg?s=120&d=mm&r=g)
Hello Tobias, Friday, February 09, 2001, 10:17:18 AM, you wrote: TW> Ich denke mal, dass mir der Befehl "mmv" fehlt, kannst Du mir noch TW> sagen in welchem Paket der ist, dann waere ich gluecklich. Unter Suse 6.3 in der Serie ap "Anwendungen, die kein X11 benötigen" -- Best regards, Roland mailto:roland.suehsmuth@boecker-online.de
![](https://seccdn.libravatar.org/avatar/7b33cb1e776e35b87edb8ef09f0c888f.jpg?s=120&d=mm&r=g)
Hallo, On Fre, 09 Feb 2001, Tobias Wilken wrote:
Weiss jemand wie ich mehrere Dateien und Verzeichnisse, so umbenennen kann, das alles klein geschrieben ist? Wie ich Dateien einzelnd umbenennen kann weiss ich, aber ich muesste ca. 1000 Dateien und dementsprechend auch Unterverzeichnisse umbenennen!!
Alles eine Zeile, daher auch die ";": ren() { for f in "$@"; do echo mv -i "$f" "$(echo $f | tr '[A-Z ]' '[a-z_]')"; done; }; find /startverzeichnis/ -type f -print0 | xargs -0 ren Dabei werden auch gleich Leerzeichen durch _ ersetzt. Siehe man find, man tr und natuerlich man bash ;-) CU David -- Two people get the same job. One of them is good at it, and hence becomes necessary. The other one is not good at it, so gets promoted. This continues until a position is reached where his incompetence isn't quite so obvious. -- the Inverse Peter Principle (?)
![](https://seccdn.libravatar.org/avatar/282f4c46a4f934726c0a402347bdbd45.jpg?s=120&d=mm&r=g)
ren() { for f in "$@"; do echo mv -i "$f" "$(echo $f | tr '[A-Z ]' '[a-z_]')"; done; }; find /startverzeichnis/ -type f -print0 | xargs -0 ren
Dabei werden auch gleich Leerzeichen durch _ ersetzt. Siehe man find, man tr und natuerlich man bash ;-)
Äh - warum sollte ich die Leerzeichen in underscore ersetzen? Ich bin gerade dabei es umgekehrt zu machen. Findet man halt viel in MP3-Titeln. Rgds Tommy Wendt
![](https://seccdn.libravatar.org/avatar/f69149ad47a1861ed2b7d6f5ecee6d16.jpg?s=120&d=mm&r=g)
* Tommy Wendt schrieb am 09.Feb.2001:
Äh - warum sollte ich die Leerzeichen in underscore ersetzen? Ich bin gerade dabei es umgekehrt zu machen. Findet man halt viel in MP3-Titeln.
Weil es immer wieder zu Problemen kommt mit Namen, die Leerzeichen einthalten, da sie maskiert werden müssen. Wenn Du zum Beispiel eine solche Datei kopieren willst, dann geht das mit cp "alter Name" "neuer Name" oder mit cp alter\ Name neuer\ Name Wenn Du aber cp alter Name neuer Name schreibst, so will cp die Dateien alter, Name und neuer in das Verzeichnis Name verschieben, und das gibt im allgemeinen Probleme. Bernd -- Hast Du bei Problemen schon in der SuSE-Support-Datenbank (SDB) nachgesehen? Auf Deinem Rechner: http://localhost/doc/sdb/de/html/index.html | mit Apache: http://localhost/doc/sdb/de/html/key_form.html | Zufalls- Tagesaktuell bei SuSE: http://sdb.suse.de/sdb/de/html/index.html | signatur 2
![](https://seccdn.libravatar.org/avatar/735ea797d876adb026ae955e8adbf597.jpg?s=120&d=mm&r=g)
On Fre, Feb 09, 2001 at 10:20:41 +0100, David Haller wrote:
On Fre, 09 Feb 2001, Tobias Wilken wrote:
Weiss jemand wie ich mehrere Dateien und Verzeichnisse, so umbenennen kann, das alles klein geschrieben ist? Wie ich Dateien einzelnd umbenennen kann weiss ich, aber ich muesste ca. 1000 Dateien und dementsprechend auch Unterverzeichnisse umbenennen!!
Alles eine Zeile, daher auch die ";":
Wieso? Das geht auch am Prompt mit Enter und ohne die ";"
ren() { for f in "$@"; do echo mv -i "$f" "$(echo $f | tr '[A-Z ]' '[a-z_]')";
Was macht das echo? Von Tests übriggeblieben? ;-) Die Option -i bei 1000 Dateien? Das braucht Nerven. Und mein Lieblings-Gemecker hier: Ich würde hier prinzipiell eine Zeile zusätzlich einbauen: dn="`echo $f | tr '[A-Z]' '[a-z]'`" test "$f" = "$dn" || mv "$f" "$dn" sonst gibt es bei Dateien, die keine Großbuchstaben enthalten, immer einen Fehler!
done; }; find /startverzeichnis/ -type f -print0 | xargs -0 ren ^^^^^^^ Unterverzeichnisse sollten auch mit umbenannt werden, also ist das überflüssig. Ich würde eher die Option -depth benutzen, damit der Inhalt der Verzeichnisse vor dem Verzeichnis selbst bearbeitet wird.
Dabei werden auch gleich Leerzeichen durch _ ersetzt.
Warum immer diese Ersetzung? Leerzeichen sollten nun wirklich niemanden mehr stören. Der Zeilenumbruch in Dateien nervt mich persönlich viel mehr. Jan BTW: Wie oft in den letzten Wochen hatten wir das Thema? Wäre vielleicht mal wieder ein Verweis auf das Archiv der Liste angebracht?
![](https://seccdn.libravatar.org/avatar/7b33cb1e776e35b87edb8ef09f0c888f.jpg?s=120&d=mm&r=g)
Hallo Jan, On Fre, 09 Feb 2001, Jan Trippler wrote:
On Fre, Feb 09, 2001 at 10:20:41 +0100, David Haller wrote:
On Fre, 09 Feb 2001, Tobias Wilken wrote: Alles eine Zeile, daher auch die ";":
Wieso? Das geht auch am Prompt mit Enter und ohne die ";"
Naja, sicher ist sicher ;))
ren() { for f in "$@"; do echo mv -i "$f" "$(echo $f | tr '[A-Z ]' '[a-z_]')"; ^^^^dieses, gelle? ^^^^ nicht das!
Was macht das echo? Von Tests übriggeblieben? ;-)
Ja. Bzw. absichtlich nicht entschaerft.
Die Option -i bei 1000 Dateien? Das braucht Nerven.
Naja, ich dacht halt, lieber fragen ;) Meine Dateien sind ja nicht.
Und mein Lieblings-Gemecker hier: Ich würde hier prinzipiell eine Zeile zusätzlich einbauen: dn="`echo $f | tr '[A-Z]' '[a-z]'`" test "$f" = "$dn" || mv "$f" "$dn" sonst gibt es bei Dateien, die keine Großbuchstaben enthalten, immer einen Fehler!
Ok. Und du willst da dem mv nicht noch ein -f mitgeben? scnr.
done; }; find /startverzeichnis/ -type f -print0 | xargs -0 ren ^^^^^^^ Unterverzeichnisse sollten auch mit umbenannt werden, also ist das überflüssig.
Sollten sie? Ich dachte nein. Aber egal ;)
Ich würde eher die Option -depth benutzen, damit der Inhalt der Verzeichnisse vor dem Verzeichnis selbst bearbeitet wird.
Wenn ja, dann ack.
Dabei werden auch gleich Leerzeichen durch _ ersetzt.
Warum immer diese Ersetzung? Leerzeichen sollten nun wirklich niemanden mehr stören. Der Zeilenumbruch in Dateien nervt mich persönlich viel mehr.
Weil die Leerzeichen bei der Argumentuebergabe maskiert werden muessen. Und das nervt. Siehe oben dein "" um das `` bei der Zuweisung von dn... Da muss man sich (zu?) oft IMO unnoetig "verrenken"...
BTW: Wie oft in den letzten Wochen hatten wir das Thema?
Mindestens einmal, allerdings in die umgekehrte Richtung ;)
Wäre vielleicht mal wieder ein Verweis auf das Archiv der Liste angebracht?
Ja. CU David -- How about this extract from a CV I got to look at: I am a strong believer in all things Microsoft, value independent thought, commitment and hard work, openness and honesty. [Andy Brown in asr]
participants (7)
-
Bernd Brodesser
-
David Haller
-
Jan.Trippler@t-online.de
-
Roland Suehsmuth
-
Stefan Troeger
-
Tobias Wilken
-
Tommy Wendt