Einführung
Linux bietet verschiedene Optionen zum Umbenennen von Dateien, einschließlich der Verwendung der GUI und mehrerer dedizierter Terminalbefehle. Dies macht es relativ einfach, einzelne Dateien umzubenennen, aber es kann schwierig sein, mehrere Dateien gleichzeitig umzubenennen.
In diesem Tutorial gehen wir auf verschiedene Befehle ein, die Sie im Linux-Terminal verwenden können, um Dateien unter Linux umzubenennen.
Voraussetzungen
- Ein System, auf dem eine Linux-Distribution ausgeführt wird
- Ein Konto mit Sudo-Berechtigungen
- Zugriff auf das Terminalfenster / die Befehlszeile
- Zugriff auf einen Texteditor wie Vim oder Nano
Benennen Sie Dateien mit dem Befehl mv um
mv (move) Befehl wird verwendet, um Dateien und Verzeichnisse aus dem Terminal zu verschieben. Es verwendet die folgende Syntax:
mv
Wenn Sie mit dem Befehl mv
ein Verzeichnis als Ziel angeben, wird die Quelldatei in dieses Verzeichnis verschoben. Wenn das Ziel ein anderer Dateiname ist, benennt der Befehl mv
die Quelldatei stattdessen in diesen Namen um.
Hinweis: Weitere Informationen zur Verwendung des Befehls mv finden Sie in unserem Handbuch zum Verschieben von Verzeichnissen unter Linux.
Benennen Sie eine einzelne Datei mit dem Befehl mv um
Mit dem Befehl mv
mit seiner Standardsyntax können Sie eine einzelne Datei umbenennen:
mv
Zum Beispiel, wenn wir example1 umbenennen möchten.txt in example2.txt, würden wir verwenden:
mv example1.txt example2.txt
Da es keine Ausgabe gibt, wenn der Befehl erfolgreich ist, verwenden wir den Befehl ls
, um zu überprüfen, ob der Name geändert wurde:
ls -l
Benennen Sie mehrere Dateien mit dem Befehl mv
um Der Befehl mv
benennt eine einzelne Datei um. Durch die Kombination mit anderen Befehlen können Sie jedoch mehrere Dateien gleichzeitig umbenennen.
Eine Methode besteht darin, mit dem Befehl find
mehrere Dateien mit einem ähnlichen Namen auszuwählen und sie dann mit dem Befehl mv
umzubenennen:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
Mit dieser Syntax definiert der Befehl find
ein Element des aktuellen Dateinamens als Suchparameter. Als nächstes führt -exec
den Befehl mv
für alle Dateien aus, die der Suche entsprechen, und ändert ihre aktuellen Dateinamen in den neuen.
Zum Beispiel, wenn wir example1 .txt, Beispiel2.txt und example3.txt und wollen die Erweiterung ändern .PDF:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
Eine andere Methode besteht darin, den Befehl mv
als Teil einer Schleife <strong>for</strong>
in einem Bash-Skript zu verwenden.
Beginnen Sie im selben Beispiel mit dem Erstellen und Öffnen einer Bash-Skriptdatei mit einem Texteditor wie Nano:
sudo nano rename_files.sh
Hinweis: Erfahren Sie mehr über die Verwendung von Bash-Skripten zum Verwalten von Dateien und Verzeichnissen in Linux.
Fügen Sie dem Skript die folgenden Zeilen hinzu:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
Im obigen Skript:
- Die erste Zeile weist das Skript an, nach allen Dateien im aktuellen Verzeichnis zu suchen, die mit enden .txt.
- Die zweite Zeile verwendet den Befehl
mv
für jede gefundene Datei, um die zu ersetzen .txt-Erweiterung mit .PDF. - Die dritte Zeile beendet das Schleifensegment.
Drücken Sie Strg+X, geben Sie dann Y ein und drücken Sie die Eingabetaste, um die Änderungen am Skript zu speichern und zu beenden.
Verwenden Sie den Befehl sh
, um das Skript auszuführen:
sh rename_files.sh
Datei umbenennen mit dem Befehl rename
Der Befehl rename
wird verwendet, um mehrere Dateien oder Verzeichnisse in Linux umzubenennen. Es bietet mehr Funktionen als der Befehl mv
, kann jedoch schwieriger zu verwenden sein, da Grundkenntnisse in Perl-Ausdrücken erforderlich sind.
Installieren des Umbenennungsbefehls
Auf vielen Linux-Distributionen ist der Befehl rename
standardmäßig nicht verfügbar. Wenn auf Ihrem System der Befehl rename
fehlt, installieren Sie ihn mit:
- Verwenden Sie für Ubuntu und Debian
sudo apt install rename
- Verwenden Sie für CentOS und Fedora
sudo yum install prename
- Verwenden Sie für Arch Linux
sudo pacman -S
rename
rename Befehlssyntax und Optionen
Es gibt drei Arten von regulären Perl-Ausdrücken: und übersetzen. Der Befehl rename
verwendet Ausdrücke ersetzen und Übersetzen, um Datei- und Verzeichnisnamen zu ändern.
Ersatzausdrücke ersetzen einen Teil des Dateinamens durch eine andere Zeichenfolge. Sie verwenden die folgende Syntax:
rename 's///'
Mit dieser Syntax benennt der Befehl die Datei um, indem er das erste Vorkommen des Elements filename durch die Ersetzung ersetzt. Im obigen Befehl:
-
rename
: Ruft den Befehl rename auf. -
: Stellt ein optionales Argument bereit, das die Ausführung des Befehls ändert.
-
s
: Gibt einen Ersatzausdruck an. -
: Gibt den Teil des Dateinamens an, den Sie ersetzen möchten.
-
: Gibt einen Ersatz für den Teil des aktuellen Dateinamens an.
-
: Definiert die Datei, die Sie umbenennen möchten.
Ein translate-Ausdruck übersetzt eine Zeichenfolge in eine andere, Zeichen für Zeichen. Dieser Ausdruckstyp verwendet die folgende Syntax:
rename 'y///'
Ein Beispiel für einen rename
-Befehl mit einem translate-Ausdruck:
rename 'y/abc/xyz/'
In diesem Beispiel wird jedes a-Zeichen im Dateinamen durch ein x, jedes b durch ein y und jedes c durch ein z ersetzt.
Der Befehl rename verwendet die folgenden Optionen:
-
-a
: Ersetzt alle Vorkommen des Elements filename anstelle nur des ersten. -
-f
: Erzwingt ein Überschreiben vorhandener Dateien. -
-h
: Zeigt den Hilfetext an. -
-i
: Zeigt eine Eingabeaufforderung an, bevor vorhandene Dateien überschrieben werden. -
-l
: Ersetzt das letzte Vorkommen des Elements filename anstelle des ersten. -
-n
: Führt einen Trockenlauf durch und nimmt keine dauerhaften Änderungen vor. Am besten kombiniert mit der ausführlichen Ausgabe (-v
). -
-s
: Benennt das Ziel anstelle des Symlinks um. -
-v
: Zeigt eine ausführliche Version der Ausgabe an. -
-V
: Zeigt die Befehlsversion an.
Beispiele für Umbenennungsbefehle
1. Dateierweiterung ändern
Zurück zu unserem letzten Beispiel, um die Dateierweiterung von zu ändern .txt zu .pdf, verwenden:
rename -v 's/.txt/.pdf/' *.txt
2. Ersetzen eines Teils eines Dateinamens
Das Ersetzen eines anderen Teils des Dateinamens folgt derselben Syntax. So benennen Sie example1 um.txt, Beispiel2.txt und example3.txt zu test1.txt, test2.txt und text3.txt, verwenden:
rename -v 's/example/test/' *.txt
3. Löschen eines Teils eines Dateinamens
Mit der Option rename
können Sie auch einen Teil des Dateinamens löschen, indem Sie den Ersatzteil des Ausdrucks weglassen. Zum Beispiel, wenn wir example in ex verkürzen wollen:
rename -v 's/ample//' *.txt
4. Umbenennen von Dateien mit ähnlichen Namen
Eine andere Verwendung für die Option rename
besteht darin, Dateien mit ähnlichen Namen umzubenennen. Zum Beispiel, wenn wir Dateien mit Beispiel und Beispiel in ihrem Namen umbenennen möchten, um zu testen:
rename -v 's/(ex|s)ample/test/' *.txt
5. Dateien zeichenweise umbenennen
Mit dem Befehl rename
können Sie auch translate-Ausdrücke verwenden, um Dateien zeichenweise umzubenennen. Wenn Sie beispielsweise mehrere Dateien mit dem Namen example file umbenennen möchten, indem Sie das Leerzeichen durch einen Unterstrich (_) ersetzen:
rename -v 'y/ /\_/' *.txt
6. Kleinbuchstaben konvertieren
Um Kleinbuchstaben in Dateinamen in Großbuchstaben umzuwandeln, verwenden Sie:
rename -v 'y/a-z/A-Z/' *.txt
7. Großbuchstaben konvertieren
Umgekehrt funktioniert es auch, wenn wir die Reihenfolge der Groß- und Kleinbuchstaben im Ausdruck ändern:
rename -v 'y/A-Z/a-z/' *.TXT
Hinweis: Seien Sie vorsichtig, wenn Sie die Groß- / Kleinschreibung ändern, da dies auch die Dateierweiterung ändert.
Fazit
Nach dem Lesen dieses Tutorials sollten Sie in der Lage sein, Dateien mit den Befehlen mv
und rename
in Linux umzubenennen.
Erfahren Sie mehr über die Verwendung von Linux-Befehlen in unserem Spickzettel für Linux-Befehle.