Das Umbenennen von Verzeichnissen ist eine der grundlegendsten Operationen, die Sie häufig auf einem Linux-System ausführen müssen. Sie können Verzeichnisse über den GUI-Dateimanager mit ein paar Klicks oder über das Befehlszeilenterminal umbenennen.
Dieser Artikel erklärt, wie Sie Verzeichnisse über die Befehlszeile umbenennen.
Verzeichnisse umbenennen #
In Linux- und Unix-ähnlichen Betriebssystemen können Sie den mv
verwenden (kurz für verschieben) Befehl zum Umbenennen oder Verschieben von Dateien und Verzeichnissen von einem Ort zum anderen.
Die Syntax des mv
Der Befehl zum Verschieben von Verzeichnissen lautet wie folgt:
mv [OPTIONS] source destination
Zum Beispiel, um das Verzeichnis dir1
umzubenennen als dir2
Sie würden Folgendes ausführen:
mv dir1 dir2
Beim Umbenennen von Verzeichnissen müssen Sie genau zwei Argumente für mv
angeben Befehl. Das erste Argument ist der aktuelle Name des Verzeichnisses und das zweite der neue Name.
Es ist wichtig zu beachten, dass wenn dir2
existiert bereits, dir1
wird nach dir2
verschoben Verzeichnis.
Um ein Verzeichnis umzubenennen, das sich nicht im aktuellen Arbeitsverzeichnis befindet, müssen Sie entweder den absoluten oder den relativen Pfad angeben:
mv /home/user/dir1 /home/user/dir2
Mehrere Verzeichnisse umbenennen #
Das Umbenennen eines einzelnen Verzeichnisses ist eine einfache Aufgabe, aber das gleichzeitige Umbenennen mehrerer Verzeichnisse kann eine Herausforderung darstellen, insbesondere für neue Linux-Benutzer.
Das gleichzeitige Umbenennen mehrerer Verzeichnisse ist selten erforderlich.
Umbenennen mehrerer Verzeichnisse mit mv
#
Die mv
Der Befehl kann jeweils nur eine Datei umbenennen. Es kann jedoch in Verbindung mit anderen Befehlen wie find
verwendet werden oder innerhalb von Schleifen, um mehrere Dateien gleichzeitig umzubenennen.
Hier ist ein Beispiel, das zeigt, wie man den Bash for
verwendet Schleife, um das aktuelle Datum an die Namen aller Verzeichnisse im aktuellen Arbeitsverzeichnis anzuhängen:
for d in *; do
if [ -d "$d" ]; then
mv -- "$d" "${d}_$(date +%Y%m%d)"
fi
done
Analysieren wir den Code Zeile für Zeile:
- Die erste Zeile erzeugt eine Schleife und durchläuft eine Liste aller Dateien.
- Die zweite Zeile prüft, ob die Datei ein Verzeichnis ist.
- Die dritte Zeile fügt das aktuelle Datum an jedes Verzeichnis an.
Hier ist eine Lösung für dieselbe Aufgabe mit mv
in Kombination mit find
:
find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;
Der find
Befehl übergibt alle Verzeichnisse an mv
einzeln mit dem -exec
Möglichkeit. Die Zeichenfolge {}
ist der Name des gerade verarbeiteten Verzeichnisses.
Wie Sie an den Beispielen sehen können, benennen Sie mehrere Verzeichnisse mit mv
um ist keine leichte Aufgabe, da sie gute Kenntnisse der Bash-Skripterstellung erfordert.
Umbenennen mehrerer Verzeichnisse mit rename
#
Das rename
Der Befehl wird verwendet, um mehrere Dateien und Verzeichnisse umzubenennen. Dieser Befehl ist fortgeschrittener als mv
da es Grundkenntnisse über reguläre Ausdrücke erfordert.
Es gibt zwei Versionen von rename
Befehl mit anderer Syntax. Wir verwenden die Perl-Version von rename
Befehl. Die Dateien werden gemäß dem angegebenen regulären Perl-Ausdruck umbenannt.
Das folgende Beispiel zeigt, wie Leerzeichen in den Namen aller Verzeichnisse im aktuellen Arbeitsverzeichnis durch Unterstriche ersetzt werden:
find . -mindepth 1 -prune -type d | rename 'y/ /_/'
Übergeben Sie sicherheitshalber das -n
Option zum rename
Namen der umzubenennenden Verzeichnisse auszugeben, ohne sie umzubenennen.
Hier ist ein weiteres Beispiel, das zeigt, wie man Verzeichnisnamen in Kleinbuchstaben umwandelt:
find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'
Schlussfolgerung #
Wir haben Ihnen gezeigt, wie Sie den mv
verwenden Befehle zum Umbenennen von Verzeichnissen.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.