Einführung
Das Umbenennen eines Verzeichnisses ist eine der grundlegendsten Aufgaben, die Sie auf jedem Betriebssystem ausführen werden. Das Linux-Terminal bietet verschiedene Möglichkeiten, Verzeichnisse mithilfe von Befehlen und Skripten umzubenennen.
In diesem Tutorial gehen wir die verschiedenen Methoden durch, die Sie verwenden können, um ein Verzeichnis in Linux über das Terminalfenster 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
Umbenennen von Verzeichnissen mit dem mv-Befehl
Die Hauptfunktion von mv
Befehl in Linux verschiebt Dateien und Verzeichnisse von einem Ort zum anderen. Es verwendet die folgende Befehlssyntax:
mv [options] [source] [destination]
Wenn das Zielverzeichnis nicht existiert, wird die Datei mv
Befehl benennt stattdessen das Quellverzeichnis um. In diesem Fall ändert sich die Syntax zu:
mv [options] [current directory name] [new directory name]
Nehmen wir als Beispiel an, wir haben Verzeichnis1 , Verzeichnis2 und Verzeichnis3 in unserem Zuhause Verzeichnis:
Zum Umbenennen von Verzeichnis1 in Example_Directory mit dem mv
Befehl, verwenden Sie:
mv Directory1 Example_Directory
Es gibt keine Ausgabe, wenn der Befehl erfolgreich ist, also müssen wir ls
verwenden Befehl zum Überprüfen der Namensänderung:
ls -l
Umbenennen von Verzeichnissen mit dem Befehl rename
Die rename
Befehl in Linux ist ein dedizierter Befehl, der zum Ändern der Namen von Dateien und Verzeichnissen verwendet wird. Die Verwendung dieses Befehls erleichtert das gleichzeitige Umbenennen mehrerer Verzeichnisse.
Ein einzelnes Verzeichnis mit dem Befehl rename umbenennen
Die rename
Befehl verwendet die folgende Syntax:
rename [options] 's/[expression]/[replacement]/' [file name]
Der Befehl benennt die Datei um, indem er das erste Vorkommen des Ausdrucks ersetzt mit dem Ersatz . Zum Beispiel, wenn wir Verzeichnis1 umbenennen wollen zu Example_Directory :
rename 's/Directory1/Example_Directory/' *
In diesem Beispiel können wir sehen, dass rename
Befehlssyntax besteht aus mehreren Abschnitten:
rename
:Ruftrename
auf Befehl.s
:Abkürzung für Ersatz , gibt an, dass wir den Ausdruck durch die Ersetzung ersetzen.- /
Directory1
:Gibt den Ausdruck an oder den Teil des alten Verzeichnisnamens, den Sie ersetzen möchten. /Example_Directory
/ :Definiert den Ersatz oder der neue Verzeichnisname.*
:Durchsucht die Startseite Verzeichnis für Namen, die mit dem bereitgestellten Ausdruck übereinstimmen.
Überprüfung der Startseite Verzeichnisinhalt mit ls
Befehl zeigt, dass das Verzeichnis jetzt einen neuen Namen hat:
Mehrere Verzeichnisse mit dem Befehl rename umbenennen
Die rename
Der Befehl bietet eine Möglichkeit, mehrere Verzeichnisse gleichzeitig umzubenennen, ohne Bash-Skripte zu verwenden. Zum Beispiel, wenn wir Verzeichnis1 umbenennen wollen , Verzeichnis2 und Verzeichnis3 in Ordner1 , Ordner2 und Ordner3 :
rename -v 's/Directory/Folder/' *
Im obigen Beispiel:
-v
:Ruft die ausführliche Ausgabe auf, die jeden Schritt des Prozesses auflistet.'s/Directory/Folder/'
:Ersetzt Verzeichnis in den Namen der Suchergebnisse mit Ordner .*
:Durchsucht die Startseite Verzeichnis für Namen, die mit dem bereitgestellten Ausdruck übereinstimmen.
Die rename
Der Befehl kann auch Dateinamen übersetzen, indem er das y verwendet Argument anstelle des s Streit. In diesem Fall übersetzt es eine Zeichenfolge Zeichen für Zeichen in eine andere.
Zum Beispiel:
rename 'y/abc/def/'
Der obige Befehl übersetzt jedes a Zeichen in d , jedes b in e , und jedes c in f .
Im folgenden Beispiel haben wir Leerzeichen in Verzeichnisnamen in Unterstriche übersetzt (_ ).
rename -v 'y/ /_/' *
Umbenennen von Verzeichnissen mit dem Find-Befehl
Falls Sie sich nicht sicher sind, wo sich das Verzeichnis befindet, das Sie umbenennen möchten, verwenden Sie den Befehl find mit dem mv
Befehl können Sie danach suchen und es umbenennen, wenn es gefunden wird:
find . -depth -type d -name [current directory name] -execdir mv {} [new directory name] \;
Im obigen Beispiel -execdir
führt den mv
aus Befehl einmal find
Befehl sucht das Verzeichnis.
Der folgende Befehl findet beispielsweise Verzeichnis1 und benennt es um in Example_Directory :
find . -depth -type d -name Directory1 -execdir mv {} Example_Directory \;
Umbenennen von Verzeichnissen mit Bash-Skripten
Die Verwendung von Bash-Skripten ist eine weitere Möglichkeit, mehrere Verzeichnisse gleichzeitig umzubenennen. Anders als beim rename
Befehl können Sie mit Bash-Skripten eine Vorlage für die spätere Verwendung speichern.
Erstellen Sie zunächst das Skript mit einem Texteditor, z. B. Nano:
sudo nano rename_directories.sh
Das folgende Beispiel ist ein Bash-Skript, das nach Verzeichnissen sucht und das aktuelle Datum an deren Namen anhängt:
#!/bin/bash
#Searches for directories and renames them according to the specified pattern
for d in *
do
if [ -d "$d" ]
then
mv -- "$d" "{d}_$(date +%Y%m%d)"
fi
done
Im obigen Beispiel:
- Die erste Zeile weist das Skript an, alle Dateien und Verzeichnisse am aktuellen Speicherort zu durchsuchen.
- Zeile 2 und 3 suchen nach Verzeichnissen.
- Zeile 4 und 5 hängen das aktuelle Datum an den Namen eines gefundenen Verzeichnisses an.
Drücken Sie Strg+X , geben Sie Y ein , und drücken Sie Eingabe um das Skript zu schließen und zu speichern.
Als Beispiel verwenden wir das obige Skript, um die Namen von Verzeichnis1 zu ändern , Verzeichnis2 und Verzeichnis3 , befindet sich im Beispiel Verzeichnis.
Beginnen Sie mit dem Beispiel Verzeichnis:
cd Example
Führen Sie als Nächstes das Skript mithilfe von sh
aus Befehl:
sh rename_directory.sh
Mit ls
Der Befehl erlaubt es uns, die Namensänderung zu überprüfen:
ls -l