Das Umbenennen von Dateien ist eine der grundlegendsten Aufgaben, die Sie häufig auf einem Linux-System ausführen müssen. Sie können Dateien mit einem GUI-Dateimanager oder über das Befehlszeilenterminal umbenennen.
Das Umbenennen einer einzelnen Datei ist einfach, aber das gleichzeitige Umbenennen mehrerer Dateien kann eine Herausforderung darstellen, insbesondere für Linux-Neulinge.
In diesem Tutorial zeigen wir Ihnen, wie Sie mv
verwenden und rename
Befehle zum Umbenennen von Dateien und Verzeichnissen.
Umbenennen von Dateien mit dem mv
Befehl #
Die mv
Der Befehl (kurz für verschieben) wird verwendet, um Dateien umzubenennen oder von einem Ort an einen anderen zu verschieben. Die Syntax für mv
Befehl lautet wie folgt:
mv [OPTIONS] source destination
Die source
kann eine oder mehrere Dateien oder Verzeichnisse und destination
sein kann eine einzelne Datei oder ein einzelnes Verzeichnis sein.
- Wenn Sie mehrere Dateien als
source
angeben , dasdestination
muss ein Verzeichnis sein. In diesem Fall diesource
Dateien werden in das Zielverzeichnis verschoben. - Wenn Sie eine einzelne Datei als
source
angeben , und dasdestination
Ziel ist ein vorhandenes Verzeichnis, dann wird die Datei in das angegebene Verzeichnis verschoben. - Um eine Datei umzubenennen, müssen Sie eine einzelne Datei als
source
angeben und eine einzelne Datei alsdestination
Ziel.
Zum Beispiel, um die Datei file1.txt
umzubenennen als file2.txt
Sie würden Folgendes ausführen:
mv file1.txt file2.txt
Umbenennen mehrerer Dateien mit dem mv
Befehl #
Die mv
Der Befehl kann jeweils nur eine Datei umbenennen, kann aber in Verbindung mit anderen Befehlen wie find
verwendet werden oder innerhalb von bash for
oder while
Schleifen zum Umbenennen mehrerer Dateien.
Das folgende Beispiel zeigt, wie die Bash-for-Schleife verwendet wird, um alle .html
umzubenennen Dateien im aktuellen Verzeichnis durch Ändern der .html
Erweiterung zu .php
.
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
Analysieren wir den Code Zeile für Zeile:
- Die erste Zeile erstellt einen
for
Schleife und iteriert durch eine Liste aller Dateien, die mit.html
umrandet sind . - Die zweite Zeile gilt für jedes Element der Liste und verschiebt die Datei in eine neue, wobei
.html
ersetzt wird mit.php
. Der Teil${file%.html}
verwendet die Erweiterung des Shell-Parameters, um die.html
zu entfernen Teil des Dateinamens. done
zeigt das Ende des Loop-Segments an.
Hier ist ein Beispiel mit mv
in Kombination mit find
um dasselbe wie oben zu erreichen:
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
Der find
Der Befehl übergibt alle Dateien, die mit .html
enden im aktuellen Verzeichnis nach mv
einzeln mit dem -exec
Möglichkeit. Die Zeichenfolge {}
ist der Name der aktuell verarbeiteten Datei.
Wie Sie in den obigen Beispielen sehen können, wird das Umbenennen mehrerer Dateien mit mv
Befehl ist keine leichte Aufgabe, da er gute Kenntnisse der Bash-Skripterstellung erfordert.
Umbenennen von Dateien mit dem rename
Befehl #
Das rename
Der Befehl wird verwendet, um mehrere Dateien umzubenennen. Dieser Befehl ist fortgeschrittener als mv
da es einige Grundkenntnisse über reguläre Ausdrücke erfordert.
Es gibt zwei Versionen von rename
Befehl mit anderer Syntax. In diesem Tutorial verwenden wir die Perl-Version von rename
Befehl. Wenn Sie diese Version nicht auf Ihrem System installiert haben, können Sie sie einfach über den Paketmanager Ihrer Distribution installieren.
-
Installieren Sie
rename
auf Ubuntu und Debiansudo apt install rename
-
Installieren Sie
rename
auf CentOS und Fedorasudo yum install prename
-
Installieren Sie
rename
auf Arch Linuxyay perl-rename ## or yaourt -S perl-rename
Die Syntax für das rename
Befehl lautet wie folgt:
rename [OPTIONS] perlexpr files
Das rename
Der Befehl benennt die files
um entsprechend dem angegebenen perlexpr
regulären Ausdruck. Hier können Sie mehr über reguläre Ausdrücke in Perl lesen.
Das folgende Beispiel ändert alle Dateien mit der Erweiterung .html
zu .php
:
rename 's/.html/.php/' \*.html
Sie können das -n
verwenden Option zum Drucken von Namen von Dateien, die umbenannt werden sollen, ohne sie umzubenennen.
rename -n 's/.html/.php/' \*.html
Die Ausgabe sieht in etwa so aus:
rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)
Standardmäßig ist die rename
Der Befehl überschreibt keine vorhandenen Dateien. Übergeben Sie das -f
Option zum Überschreiben bestehender Dateien:
rename -f 's/.html/.php/' \*.html
Unten sind ein paar häufigere Beispiele für die Verwendung von rename
Befehl:
-
Leerzeichen in Dateinamen durch Unterstriche ersetzen
rename 'y/ /\_/' \*
-
Dateinamen in Kleinbuchstaben umwandeln
rename 'y/A-Z/a-z/' \*
-
Dateinamen in Großbuchstaben umwandeln
rename 'y/a-z/A-Z/' \*
Schlussfolgerung #
Wir haben Ihnen gezeigt, wie Sie den mv
verwenden und rename
Befehle zum Umbenennen von Dateien.
Es gibt auch andere Befehle zum Umbenennen von Dateien unter Linux, wie z. B. mmv
. Neue Linux-Benutzer, die von der Befehlszeile eingeschüchtert sind, können GUI-Batch-Umbenennungstools wie Métamorphose verwenden.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.