Website-Suche

Umbenennen – Ein Befehlszeilentool zum Umbenennen mehrerer Dateien unter Linux


Wir verwenden häufig den Befehl „mv“, um eine einzelne Datei unter Linux umzubenennen. Allerdings ist das schnelle Umbenennen mehrerer oder mehrerer Dateien in einem Terminal eine sehr schwierige Aufgabe.

Linux verfügt über ein sehr leistungsfähiges integriertes Tool namens rename. Der Befehl rename wird verwendet, um mehrere oder Gruppen von Dateien umzubenennen, Dateien in Kleinbuchstaben umzubenennen, Dateien in Großbuchstaben umzubenennen und Dateien mithilfe von Perl-Ausdrücken zu überschreiben.

Der Befehl „rename“ ist Teil des Perl-Skripts und befindet sich auf vielen Linux-Distributionen unter „/usr/bin/“. Sie können den Befehl „which“ ausführen, um den Speicherort des Umbenennungsbefehls herauszufinden.

which rename
/usr/bin/rename
Die grundlegende Syntax des Umbenennungsbefehls
rename 's/old-name/new-name/' files

Der Umbenennungsbefehl enthält einige optionale Argumente sowie einen obligatorischen Perl-Ausdruck, der den Umbenennungsbefehl bei der eigentlichen Arbeit anleitet.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
  1. -v: Namen von Dateien drucken, die erfolgreich umbenannt wurden.
  2. -n: Zeigt an, welche Dateien umbenannt worden wären.
  3. -f: Überschreiben vorhandener Dateien erzwingen.
  4. perlexpr: Perl-Ausdruck.

Zum besseren Verständnis dieses Dienstprogramms haben wir im Artikel einige praktische Beispiele für diesen Befehl besprochen.

1. Ein einfaches Beispiel für einen Umbenennungsbefehl

Angenommen, Sie haben eine Reihe von Dateien mit der Erweiterung „.html“ und möchten alle „.html“-Dateien in „.php“ umbenennen. auf einmal. Führen Sie beispielsweise zunächst „ls -l“ aus, um die Liste der Dateien mit der Erweiterung „.html“ zu überprüfen.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Nun möchten Sie die Erweiterung aller dieser Dateien von „.html“ in „.php“ ändern. Sie können den folgenden Befehl „rename“ mit Perl-Ausdruck verwenden, wie unten gezeigt.

ravisaive@tecmint:~$ rename 's/\.html$/\.php/' *.html

Hinweis: Im obigen Befehl haben wir zwei Argumente verwendet.

  1. Das erste Argument ist ein Perl-Ausdruck, der .html durch .php ersetzt.
  2. Das zweite Argument weist den Umbenennungsbefehl an, alle Dateien durch *.php zu ersetzen.

Überprüfen wir, ob alle Dateien in die Erweiterung „.php“ umbenannt wurden, indem wir an der Eingabeaufforderung ls -l ausführen.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.php
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.php
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.php
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.php

Nun können Sie oben sehen, dass alle html-Dateien in php umbenannt wurden.

2. Überprüfen Sie die Änderungen, bevor Sie den Befehl „Umbenennen“ ausführen

Während Sie kritische oder größere Umbenennungsaufgaben ausführen, können Sie die Änderungen jederzeit überprüfen, indem Sie den Umbenennungsbefehl mit dem Argument „-n“ ausführen. Der Parameter „-n“ sagt Ihnen genau, welche Änderungen stattfinden würden, aber die Änderungen werden nicht wirklich durchgeführt. Hier ist das Beispiel des folgenden Befehls.

ravisaive@tecmint:~$ rename -n 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

Hinweis: Die obige Befehlsausgabe zeigt nur Änderungen an, aber in Wirklichkeit werden die Änderungen nicht durchgeführt, es sei denn, Sie führen den Befehl ohne den Schalter „-n“ aus.

3. Umbenennungsausgabe drucken

Wir haben gesehen, dass der Umbenennungsbefehl keine Informationen zu den vorgenommenen Änderungen anzeigte. Wenn Sie also die Details des Umbenennungsbefehls erhalten möchten (wie wir es mit der Option „-n“ getan haben), verwenden wir hier die Option „-v“, um den vollständigen Ausdruck auszudrucken Einzelheiten zu allen Änderungen, die durch den erfolgreichen Umbenennungsbefehl vorgenommen wurden.

ravisaive@tecmint:~$ rename -v 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

4. Wandeln Sie alle Kleinbuchstaben in Großbuchstaben um und umgekehrt

Um alle Dateien mit Namen in Kleinbuchstaben stapelweise in Großbuchstaben umzubenennen. Ich möchte beispielsweise alle folgenden Dateien von Kleinbuchstaben in umwandeln >Großbuchstaben.

Von Klein- zu Großbuchstaben
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

Verwenden Sie einfach den folgenden Befehl mit Perl-Ausdruck.

ravisaive@tecmint:~$ rename 'y/a-z/A-Z/' *.html

Sobald Sie den obigen Befehl ausgeführt haben, können Sie die Änderungen überprüfen, indem Sie „ls -l“ ausführen.

ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 ENTERTAINMENT.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 NEWS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 PHOTOS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 SPORTS.HTML

Sie können sehen, dass der obige Befehl tatsächlich alle kleingeschriebenen Dateinamen (mit der Erweiterung .HTML) in Großbuchstaben umbenannt hat.

Groß-/Kleinschreibung

Ebenso können Sie mit dem folgenden Befehl auch alle Großbuchstaben in Kleinbuchstaben umwandeln.

ravisaive@tecmint:~$ rename 'y/A-Z/a-z/' *.HTML
ravisaive@tecmint:~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

5. Schreiben Sie den ersten Buchstaben des Dateinamens groß

Um nur den ersten Buchstaben jedes Dateinamens groß zu schreiben, verwenden Sie den folgenden Befehl.


rename 's/\b(\w)/\U$1/g' *.ext

6. Vorhandene Dateien überschreiben

Wenn Sie vorhandene Dateien zwangsweise überschreiben möchten, verwenden Sie die Option „-f“, wie unten gezeigt.

ravisaive@tecmint:~$ rename -f 's/a/b/' *.html

Wenn Sie mehr über den Umbenennungsbefehl erfahren möchten, geben Sie „man rename“ in das Terminal ein.

Der Befehl rename ist sehr nützlich, wenn Sie Dateien über die Befehlszeile mehrfach oder stapelweise umbenennen. Probieren Sie es doch mal aus und lassen Sie mich wissen, inwieweit das Umbenennen von Dateien sinnvoll ist.