Die Möglichkeit, Datei- und Verzeichnisnamen zu ändern, ist eine der wichtigsten Fähigkeiten, die jeder Linux-Benutzer benötigt. Dieser Artikel setzt die Bash-Artikelserie fort und zeigt, wie Sie verschiedene Möglichkeiten wie Dateimanager, mv und Umbenennungsprogramme in Kombination mit Such- und Bash-Schleifenkonstrukten verwenden können. Verbessern Sie Ihre Linux-Kenntnisse in nur 3 Minuten!
Hierfür stehen Ihnen zwei Möglichkeiten zur Verfügung:
- Dateimanager.
- Befehlszeilenterminal.
Verwendung des Dateimanagers
Eine der einfachsten Möglichkeiten zum Umbenennen von Dateien und Verzeichnissen in Linux für neue Benutzer ist die Verwendung von Midnight Commander.
Midnight Commander – ist ein konsolenbasierter Dateimanager, der vom berühmten Norton Commander geklont wurde.
So installieren Sie Midnight Commander unter Ubuntu:
$ sudo apt-get update
$ sudo apt-get -y install mc
Verwenden Sie für CentOS/Fedora/RHEL einen anderen Paketmanager:
$ sudo yum -y install mc
Führen Sie zum Starten von Midnight Commander mc aus Befehl.
Sie müssen die Tastaturpfeile verwenden, um die Dateiauswahl zu verschieben. Um zwischen dem linken und dem rechten Bildschirm zu wechseln, müssen Sie den Tab verwenden Schlüssel. Sie können auch Ihre Maus verwenden, aber Sie können nur Dateien auswählen, die auf dem Bildschirm sichtbar sind.
Um die Datei oder das Verzeichnis umzubenennen, bewegen Sie den Cursor darauf und drücken Sie F6 . Wenn Sie den genauen Schlüssel vergessen haben, verwenden Sie Ihre Maus, um Verschieben/Umbenennen aus dem Menü Datei auszuwählen.
Sehen wir uns als Nächstes an, wie wir die Dateien und Verzeichnisse mithilfe von mv umbenennen können und umbenennen Befehle.
„mv“-Befehl
Die mv Befehl hilft Ihnen m ov e oder benennen Sie Dateien und Verzeichnisse vom Quell- zum Zielspeicherort um. Die Syntax für den Befehl lautet wie folgt:
$ mv [OPTIONS] source destination
Die Quelle und Ziel kann eine Datei oder ein Verzeichnis sein.
Um file1.txt umzubenennen zu file2.txt mit mv, Führen Sie den folgenden Befehl aus:
$ mv file1.txt file2.txt
Um den Namen von Ordner1 zu ändern Verzeichnis in Ordner2 , verwenden Sie den folgenden Befehl:
$ mv folder1 folder2
Mehrere Dateien gleichzeitig umbenennen
Die mv Das Dienstprogramm kann jeweils nur eine Datei umbenennen, aber Sie können es mit anderen Befehlen verwenden, um mehr als eine Datei umzubenennen. Zu diesen Befehlen gehört find und Bash für und während Schleifen.
Stellen wir uns zum Beispiel vor, Sie müssen die Dateierweiterung für einen bestimmten Dateityp in einem Verzeichnis ändern. Im folgenden Beispiel benennen wir alle HTML-Dateien um und ändern ihre Erweiterung von html zu php .
Hier ist das Beispiel Ordnerstruktur:
$ tree example
example
├── index.html
├── page1.html
├── page2.html
└── page3.html
0 directories, 4 files
Lassen Sie uns nun das folgende Bash-For-Loop-Konstrukt innerhalb des Beispiels verwenden Verzeichnis:
$ cd example
$ for f in *.html; do
mv "$f" "${f%.html}.php"
done
Hier sind wir in das Beispiel eingetreten Verzeichnis. Als Nächstes haben wir die mv ausgeführt Befehl in der Bash for-Schleife (der Befehl zwischen for und fertig Schlüsselwörter).
Folgendes passiert:
- Die for-Schleife durchläuft die Dateien, die auf .html enden und jeden Dateinamen in die Variable f einfügen .
- Dann mv Dienstprogramm ändert die Erweiterung jeder Datei f aus .html Datei in .php . Ein Teil des Ausdrucks ${f%.html} ist für das Entfernen der .html verantwortlich aus dem Dateinamen. Ein vollständiger Ausdruck "${f%.html}.php" fügt .php hinzu zum Dateinamen ohne .html Teil.
Hier ist das erwartete Ergebnis:
$ ls -l
total 0
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 index.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page1.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page2.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page3.php
"find"-Befehl
Mit Suchen Utility ist eine der gebräuchlichsten Möglichkeiten, Datei- und Verzeichnisoperationen in Linux zu automatisieren.
Im folgenden Beispiel verwenden wir die Suche um das gleiche Ziel zu erreichen und die Dateierweiterung zu ändern.
Der finden findet alle Dateien, die auf .html enden und verwendet die -exec Argument, um jeden gefundenen Dateinamen an das sh-Shell-Skript in einer Zeile zu übergeben.
$ find . -depth -name "*.html" -exec sh -c 'f="{}"; mv "$f" "${f%.html}.php"' \;
In der sh-Skriptzeile setzen wir die Variable f mit dem Wert des Dateinamens f="{}" , dann führen wir bekannte mv aus Befehl. Ein Semikolon wird verwendet, um den Variablensatzbefehl vom mv zu trennen Befehl.
"rename"-Befehl
In manchen Fällen ist es einfacher, die Funktion Umbenennen zu verwenden Befehl anstelle von mv . Und Sie können es mit regulären Ausdrücken verwenden, ohne es mit anderen Linux-Befehlen zu kombinieren.
Hier ist die Syntax für die Umbenennung Befehl:
$ rename [OPTIONS] regexp files
Benennen wir beispielsweise alle .php um Dateien zurück zu .html :
$ ls
index.php page1.php page2.php page3.php
$ rename 's/.php/.html/' *.php
$ ls
index.html page1.html page2.html page3.html
Wenn Sie die Namen der Dateien drucken möchten, die Sie zum Umbenennen ausgewählt haben, können Sie den folgenden Befehl verwenden:
$ rename -n 's/.html/.php/' *.html
rename(index.html, index.php)
rename(page1.html, page1.php)
rename(page2.html, page2.php)
rename(page3.html, page3.php)
$ ls
index.html page1.html page2.html page3.html
Zusammenfassung
In diesem Artikel haben Sie gelernt, wie Sie Datei- und Verzeichnisnamen in Linux auf verschiedene Weise ändern können. Wir hoffen, dieser Artikel war hilfreich. Wenn ja, helfen Sie uns bitte, es in der Welt zu verbreiten.