Fehler beim Umbenennungsbefehl

Fehler beim Umbenennungsbefehl

Ich habe ein Problem beim Umbenennen der folgenden Datei

-data-02-03-04.dat

Ich vermute, das Problem liegt am Dateinamen, der mit einem Bindestrich beginnt. Beim Versuch, die Datei umzubenennen, erhalte ich die folgende Fehlermeldung.

rename -data-02-03-04.dat data020304.dat
Unknown option: data-02-03-04.dat
Usage:
    rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ] [ -d ]
    [ -e|-E perlexpr]*|perlexpr [ files ]

Antwort1

Das Problem liegt eigentlich darin, dass der Dateiname mit einem Bindestrich beginnt, sodass er als Option des renameBefehls und nicht als Argument verwendet wird. Um das Problem zu vermeiden, gehen Sie einfach den Pfad der Datei durch:

mv ./-data-02-03-04.dat data020304.dat

Ich habe den mvBefehl verwendet, der für eine einzelne Datei praktischer ist. renameDer Befehl wird hauptsächlich zum Umbenennen von Stapeln verwendet und erfordert einen perlregulären Ausdruck.

Wie erwähntHierEine andere Möglichkeit, das Problem zu lösen, besteht darin, einen doppelten Bindestrich hinzuzufügen, --um das Ende der Befehlsoptionen anzuzeigen:

mv -- -data-02-03-04.dat data020304.dat

Antwort2

renametut nicht, was Sie denken.

Sie können einen der folgenden Schritte ausführen:

mv ./-data-02-03-04.dat data020304.dat
mv -- -data-02-03-04.dat data020304.dat

Wenn Sie „rename“ wirklich verwenden möchten, wäre die korrekte Syntax:

rename 's/-//g' ./-data-02-03-04.dat
rename 's/-//g' -- -data-02-03-04.dat

verwandte Informationen