$ touch mickey \ mouse01 mickey \ mouse02 mickey \ mouse03
$ ls
'mickey mouse01' 'mickey mouse02' 'mickey mouse03'
$ mickey \ mouse umbenennen mickey_mouse mickey \ mouse *
$ ls
mickey_mouse01 mickey_mouse02 mickey_mouse03
Ich versuche, die Umbenennungsfunktion zu verwenden, die als Teil von cygwin, unix-utils (22. März 2015) bereitgestellt wird, und sie funktioniert nicht wie angekündigt.
Alle Beispiele, die ich gesehen habe, zeigen, dass dies die Syntax ist:
rename 's/old pattern/new pattern' *.txt
Dies soll ALLE Vorkommen von Dateinamen, die das alte Muster enthalten, durch den neuen Namen ersetzen, wobei das neue Muster verwendet wird. Stattdessen wird nichts getan. Buchstäblich. Kein Syntaxfehler Keine Warnung. Ich gebe den Befehl ein. der Befehl wird ausgeführt; und die Aufforderung erscheint erneut, aber es ist nichts passiert. Ich ersetze Bindestriche durch Leerzeichen, also dachte ich, ich brauche vielleicht ein Escape-Zeichen, aber es hatte keine Wirkung.
Dieser Code funktioniert, jedoch nur für EINEN Vorkommen des Musters:
rename "old pattern" "new pattern" *.txt
Benutze ich die neueste Version von Umbenennen? Gibt es einen anderen Befehl, den ich verwenden kann? Ich benenne Dateien mit "-" anstelle von Leerzeichen um. Umbenennen in eine Schleife zu setzen, nur um 1 bis 10 Bindestriche in Hunderten von Dateien zu entfernen, ist wirklich sehr lahm.
Wie immer wäre Ihre Hilfe sehr dankbar.
Tony
$ touch mickey \ mouse01 mickey \ mouse02 mickey \ mouse03
$ ls
'mickey mouse01' 'mickey mouse02' 'mickey mouse03'
$ mickey \ mouse umbenennen mickey_mouse mickey \ mouse *
$ ls
mickey_mouse01 mickey_mouse02 mickey_mouse03