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

So benennen Sie mehrere Dateien gleichzeitig in Linux um

Ich glaube, Sie wissen bereits, wie Sie Dateien in Linux mit dem Befehl mv umbenennen. Sie verwenden es einfach im Format:

mv old_file_name new_file_name

An dieser Methode ist nichts auszusetzen. Das ist schließlich der Standardweg.

Aber was ist, wenn Sie mehrere Dateien umbenennen müssen? Die Verwendung eines mv-Befehls nach dem anderen würde viel Zeit in Anspruch nehmen und sollte auf jeden Fall vermieden werden.

Sie können die Befehlsoption find exec mit dem Befehl mv verwenden, um diesen Prozess zu automatisieren. Aber lassen Sie mich Ihnen einen noch einfacheren Weg zum Umbenennen von Dateien basierend auf einem Regex-Muster zeigen.

Befehl zum Umbenennen unter Linux

Es gibt ein Befehlszeilenprogramm namens rename, mit dem Sie alle Dateien umbenennen können, die einem bestimmten Muster in Perl-Regex-Form entsprechen. Der Befehl zum Umbenennen funktioniert nur mit dem Dateinamen, nicht mit der Datei selbst.

Dies ist der Syntax-Umbenennungsbefehl wie folgt:

rename [options] perlexpr [files]

Dieser 'Umbenennungsbefehl' hat die folgenden Optionen:

  • -v :Ausführlicher Modus.
  • -n :Keine Aktion. Zeigen Sie die Dateien an, die umbenannt würden, aber benennen Sie die Dateien nicht um.
  • -o :Kein Überschreiben. Vorhandene Dateien nicht überschreiben.
  • -f :Kraft. Vorhandene Dateien überschreiben.
  • -s :Symlink nicht umbenennen, sondern sein Ziel

Beachten Sie, dass der Befehl rename kein Standarddienstprogramm ist, das auf Linux-Distributionen wie dem Befehl mv oder cp vorinstalliert ist. Möglicherweise müssen Sie es installieren. Wenn Sie ein sudo-Benutzer in Ubuntu oder Debian sind, können Sie diesen Befehl verwenden, um rename:

zu installieren
sudo apt install rename

Jetzt fragen Sie sich sicher, wie Sie Dateien mit dem Befehl rename umbenennen können. Lassen Sie mich zwei praktische Szenarien zeigen, in denen Ihnen dieser Befehl viel Zeit sparen wird.

Szenario 1:Ersetzen Sie in allen Dateinamen in Linux ein Zeichen durch ein anderes

Stellen Sie sich vor, Sie haben Leerzeichen in mehreren Dateinamen. Es ist ein Albtraum, Leerzeichen in Dateinamen unter Linux zu handhaben. Aus diesem Grund benennt kein erfahrener Benutzer jemals eine Datei mit Leerzeichen.

Natürlich möchten Sie die Leerzeichen entfernen und durch einen Unterstrich (_) ersetzen. Der Umbenennungsbefehl ist hier ziemlich praktisch. Mal sehen wie.

Um die Leerzeichen in den Namen aller Dateien im aktuellen Verzeichnis durch Unterstriche zu ersetzen, müssen Sie nur den renam-Befehl auf diese Weise verwenden:

rename 's/ /_/g' *

Wenn Sie auch nur annähernd mit Regex vertraut sind, würden Sie verstehen, dass s/ /_/g nach Leerzeichen sucht und alle Vorkommen von Leerzeichen durch _ ersetzt.

Der interessante Teil ist das Sternchen (*). Das Sternchen weist Sie an, übereinstimmende Dateien im aktuellen Verzeichnis umzubenennen.

Aber was ist, wenn Sie auch alle übereinstimmenden Dateien in Unterverzeichnissen umbenennen möchten? In diesem Fall können Sie zwei Sternchen wie diese verwenden:

rename 's/ /_/g' **

Szenario 2:Ändern Sie die Erweiterungen mehrerer Dateien gleichzeitig in Linux

Hier ist ein weiteres Szenario für Sie. Sie haben mehrere Dateien mit Namen wie meine_datei.xyz und möchten diese Dateien umbenennen, sodass sie so etwas wie meine_datei.abc werden.

Um die Erweiterungen mehrerer Dateien gleichzeitig zu ändern, können Sie den Umbenennungsbefehl auf folgende Weise verwenden:

rename 's/\.xyz$/.abc/' **

Lassen Sie mich Ihnen den obigen Befehl erklären.

‘s/\.xyz$/.abc/’ :Dies ist ein regulärer Ausdruck, der bedeutet, dass das .xyz-Zeichen am Ende der Zeile durch .abc ersetzt wird. Das zusätzliche \ wird verwendet, um dem zu entkommen. andernfalls würde es bedeuten, irgendein Zeichen vor xyz abzugleichen.

** bedeutet im aktuellen Verzeichnis und seinen Unterverzeichnissen suchen.

Hat Ihnen der Umbenennungsbefehl gefallen?

Nicht viele Leute kennen den Umbenennungsbefehl. Das mag auch daran liegen, dass rename auf vielen Linux-Systemen kein Defacto-Befehl ist.

Ich finde diesen Befehl jedoch ziemlich praktisch, wenn ich mit dem gleichzeitigen Umbenennen mehrerer Dateien zu tun habe.

Und du? Haben Sie in der Vergangenheit den Umbenennungsbefehl verwendet? Wie möchten Sie mehrere Dateien auf einmal umbenennen?


Linux
  1. So komprimieren Sie mehrere Dateien unter Linux

  2. Wie benenne ich mehrere Dateien in einem einzigen Befehl oder Skript in Unix um?

  3. So benennen Sie mehrere Dateien zusammen in Linux mit 3 Methoden um

  4. So ersetzen Sie eine Zeichenfolge in mehreren Dateien in der Linux-Befehlszeile

  5. Wie benenne ich mehrere Dateien in einem einzigen Befehl oder Skript in Unix um?

So benennen Sie Dateien über die Befehlszeile in Linux um

So benennen Sie eine Datei (en) in Linux um

8 Methoden zum gleichzeitigen Umbenennen mehrerer Dateien in Linux

So zählen Sie Dateien im Verzeichnis unter Linux

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus

Linux-Erweiterung zum Umbenennen mehrerer Dateien