Mögliches Duplikat:
Umbenennen mehrerer Dateien (Ändern der Erweiterung)
Angenommen, ich habe in meinem aktuellen/Arbeitsverzeichnis fünf Dateien:
file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps
Gibt es eine Möglichkeit, alle Dateien im aktuellen/Arbeitsverzeichnis mit der Erweiterung.xvgund geben Sie ihnen die neue Erweiterung.txt(etwas verlassen.epsrename
Dateien allein)? Kann dies mit , mv
, oder vielleicht gemacht werden mmv
? Ich verwende Ubuntu Linux. Danke!
Antwort1
Für Ihre spezielle Frage wird dieser Befehl funktionieren. Überprüfen Sie, ob Sie mit der vorgeschlagenen Umbenennung einverstanden sind, und löschen Sie dann das , -n
damit der Vorgang fortgesetzt wird.
rename -n 's/\.xvg$/.txt/' *.xvg
Dies bedeutet im Wesentlichen, dass Sie für alle Dateien mit der .xvg
Erweiterung im aktuellen Verzeichnis die Dateien suchen, die $
mit () enden .xvg
, und diesen Teil des Namens in ändern .txt
.
Weitere Einzelheiten und ein Beispiel unten.
Ja, der rename
Befehl erledigt das für Sie. Ein kurzes Beispiel, bei dem ich alle meine Dateien mit der .html
Erweiterung in umbenenne .html_bak
und dabei andere Dateien im Verzeichnis ignoriere.
Ich würdestarkempfehlen die Verwendung der -n
BefehlszeilenoptionErste(unten erklärt), um zu sehen, welche Änderungen auftreten würden, bevor der eigentliche Befehl ausgeführt wird.
Womit ich beginne:
$ ls
a.html a.txt b.html htmlfile
das -n
heißt einen "Probelauf" machen.. nur zeigen was sich ändern würde, nichts ändern!
$ rename -n 's/\.html$/.html_bak/' *
a.html renamed as a.html_bak
b.html renamed as b.html_bak
Habe noch die Originaldateien.
$ ls
a.html a.txt b.html htmlfile
Jetzt im Ernst:
$ rename 's/\.html$/.html_bak/' *
Dateien wurden umbenannt.
$ ls
a.html_bak a.txt b.html_bak htmlfile
In den obigen Beispielen verwende ich , *
um die Dateien anzugeben, die bei der Umbenennungsoperation berücksichtigt werden sollen. Ich hätte dies .html
mit auf Dateien beschränken können *.html
.
Weitere Informationen finden Sie auf der Manpage zum Umbenennen.
Antwort2
Dies kann folgendermaßen erfolgen:
rename 's/xvg$/txt/' *.xvg
Das Glob-Muster stellt sicher, dass nur *.xvg
Dateien betroffen sind.