GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So benennen Sie Dateien und Verzeichnisse in Linux um

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 , das destination muss ein Verzeichnis sein. In diesem Fall die source Dateien werden in das Zielverzeichnis verschoben.
  • Wenn Sie eine einzelne Datei als source angeben , und das destination 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 als destination 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 Debian

    sudo apt install rename
  • Installieren Sie rename auf CentOS und Fedora

    sudo yum install prename
  • Installieren Sie rename auf Arch Linux

    yay 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.


Linux
  1. So benennen Sie Dateien unter Linux um

  2. So archivieren Sie Dateien und Verzeichnisse unter Linux [Teil 2]

  3. So archivieren Sie Dateien und Verzeichnisse unter Linux [Teil 1]

  4. So benennen Sie ein Verzeichnis unter Linux um

  5. Linux Dateien und Verzeichnisse löschen

So benennen Sie eine Datei (en) in Linux um

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So benennen Sie Dateien und Verzeichnisse in Ubuntu 20.04 um

So benennen Sie Dateien und Verzeichnisse in Linux um

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile