Wie Verwenden Sie den Befehl umbenennen unter Linux

0
1077
Fatmawati Achmad Zaenuri/Shutterstock.com

In den Griff bekommen mit umbenennen der Datei Kraftpaket der Linux-Welt und geben von mv—und sich selbst—ein rest. Umbenennen ist flexibel, schnell, und manchmal sogar einfacher. Hier ist eine Anleitung, um dieses Kraftpaket von einem Befehl.

Was ist Los Mit mv?

Es ist nichts falsch mit mv . Der Befehl macht einen guten job, und es wird auf allen Linux-Distributionen, macOS, und in anderen Unix-ähnlichen Betriebssystemen. So ist es immer verfügbar. Aber manchmal müssen Sie nur eine Planierraupe nicht von der Schaufel.

Der mv-Befehl hat einen Zweck im Leben, und das ist, Dateien zu verschieben. Es ist ein glücklicher Nebeneffekt, dass Sie benutzt werden können, um eine vorhandene Datei in eine neue Datei mit einem neuen Namen. Der Netto-Effekt ist, um die Datei umzubenennen, so dass wir bekommen, was wir wollen. Aber mv ist nicht eine dedizierte Datei umbenennen tool.

Umbenennen eine Einzelne Datei Mit mv

Verwenden mv zum umbenennen eines Datei-Typs mv, ein Leerzeichen, der name der Datei, in einem Raum, und der neue name, den Sie möchten, die Datei zu haben. Drücken Sie dann die EINGABETASTE.

Sie können verwenden Sie ls, um zu überprüfen, die Datei umbenannt wurde.

mv oldfile.txt newfile.txt
ls *.txt

Umbenennen Mehrerer Dateien mit dem mv

Dinge werden komplizierter, wenn Sie möchten, benennen Sie mehrere Dateien. mv hat keine Fähigkeit zum Umgang mit umbenennen mehrerer Dateien. Sie müssen resort mit einige nette Bash-tricks. Das ist gut, wenn Sie wissen, einige medium-grade-command-line-fu, aber die Komplexität umbenennen mehrerer Dateien mit dem mv steht im krassen Gegensatz zu der Leichtigkeit der Verwendung von mv zum umbenennen einer einzelnen Datei.

Die Dinge eskalieren schnell.

Sagen wir mal wir haben ein Verzeichnis mit einer Vielzahl von Dateien in es, unterschiedlichen Typen. Einige dieser Dateien haben eine “.prog” – Erweiterung. Wir möchten, benennen Sie Sie an die Befehlszeile so, dass Sie eine haben “.prg” – Erweiterung.

Wie können wir streiten mv zu tun, dass für uns? Werfen wir einen Blick auf die Dateien.

ls *.prog -l

Hier ist ein Weg, es zu tun, der nicht resort, um das schreiben einer tatsächlichen Bash-Skript-Datei.

for f in *.prog; do mv — “$f” “${f%.prog}.prg”

Hat das funktioniert? Lassen Sie uns schauen Sie die Dateien und sehen.

ls *.pr*

Also, ja, es hat funktioniert. Sie sind alle “.prg-Dateien” jetzt, und es gibt keine “.prog” Dateien in das Verzeichnis.

Was Ist Gerade Passiert?

Was hat das zu langer Befehl eigentlich? Lassen Sie uns es brechen.

for f in *.prog; do mv — “$f” “${f%.prog}.prg”

Der erste Teil beginnt eine Schleife, die geht zu jedem Prozess “.prog” – Datei in dem Verzeichnis, in drehen Sie.

Der nächste Teil sagt, was die Verarbeitung tun. Es ist mit mv verschieben Sie jede Datei in eine neue Datei. Die neue Datei wird mit dem ursprünglichen Dateinamen ohne das “.prog” Teil. Eine neue Erweiterung “.prg” wird stattdessen verwendet werden.

Gibt es eine Einfachere Möglichkeit

Die meisten auf jeden Fall. Es ist der Befehl zum umbenennen.

umbenennen ist nicht Bestandteil des standard-Linux-distribution, so dass Sie brauchen, um es zu installieren. Es hat auch einen anderen Namen in verschiedenen Familien von Linux, aber Sie alle funktionieren auf die gleiche Weise. Sie müssen nur ersetzen Sie den entsprechenden Befehl Namen nach den Linux-Geschmack, den Sie gerade verwenden.

in Ubuntu und Debian abgeleiteten Distributionen installieren Sie umbenennen, wie diese:

sudo apt-get install umbenennen

Im Fedora-und RedHat-abgeleitete Distributionen, Sie installieren Vorname wie diese. Hinweis: die erste “p” steht für Perl.

sudo dnf installieren Vorname

Um es zu installieren in Manjaro Linux den folgenden Befehl verwenden. Beachten Sie, dass der umbenennen-Befehl aufgerufen, perl-rename.

sudo pacman -Syu perl-rename

Lasst uns Das Wieder Tun

Und dieses mal benutzen wir Sie umbenennen. Wir Rollen die Uhr zurück, so dass wir eine Reihe von “.prog” Dateien.

ls *.prog

Lassen Sie uns jetzt den folgenden Befehl verwenden, um Sie umzubenennen. Wir werden dann überprüfen Sie mit ls, ob es funktioniert hat. Denken Sie daran, zu ersetzen benennen Sie mit dem entsprechenden Befehl name für dein Linux, wenn Sie nicht mit Ubuntu oder Debian abgeleitete Linux.

rename ‘s/.prog/.prg/’ *.prog
ls *.pr*

Das klappte auch, Sie sind jetzt alle “.prg” – Dateien, und es gibt keine “.prog” Dateien in das Verzeichnis.

Was Passiert In Dieser Zeit?

Lassen Sie uns erklären, dass etwas von der Magie, die in drei Teile.

Der erste Teil ist der Befehl name umbenennen (oder Vorname oder perl-rename , für die anderen Distributionen).

Der Letzte Teil ist *.prog, was sagt umbenennen zu betreiben, auf alle “.prog” Dateien.

Der mittlere Teil definiert die Arbeit, die wir sein wollen, auf den einzelnen mit dem Namen. Das s bedeutet Ersatz. Der erste term (.prog) ist das, was umbenennen, suchen in jedem mit dem Namen und der zweite term (.prg) ist, was es ersetzt werden soll.

Der mittlere Teil des Befehls, oder der Ausdruck ist ein Perl “regulären Ausdruck” und es ist, was gibt der Befehl zum umbenennen Ihrer Flexibilität.

Ändern der Anderen Teile mit dem Namen

Wir haben uns verändert Dateinamen-Erweiterungen so weit, lassen Sie uns die änderung anderer Teile des Dateinamen.

Im Verzeichnis sind eine Menge von C-Quellcode-Dateien. Alle Dateinamen beginnen mit “slang_”. Wir können dies überprüfen mit ls.

ls sl*.c

Wir gehen, um zu ersetzen Sie alle vorkommen von “slang_” mit “sl_”. Das format des Befehls ist uns bereits bekannt. Wir ändern Sie einfach den Suchbegriff, den Ersatz der Dauer und der Art der Datei.

rename ‘s/slang_/sl_’ *.c

Dieses mal sind wir auf der Suche nach “.c” – Dateien, und die Suche nach “slang_”. Wenn “slang_”, die sich in einem mit dem Namen, es wird ersetzt mit “sl_”.

Überprüfen können wir das Ergebnis des Befehls durch die Wiederholung der ls-Befehl von oben mit den gleichen Parametern:

ls sl*.c

Löschen Teil einer mit dem Namen

Wir können entfernen Sie einen Teil eines Dateinamens durch ersetzen den Suchbegriff durch nichts.

ls *.c
rename ‘s/sl_//’ *.c
ls *.c

Wir können aus der ls-Befehl, der unseren “.c” – Dateien sind alle vorangestellt mit “sl_”. Lassen Sie uns loszuwerden, die insgesamt.

Der rename-Befehl folgt dem gleichen format wie vorher. Wir suchen “.c” – Dateien. Der Suchbegriff ist “sl_”, aber es gibt keine substitution Begriff. Zwei umgekehrte Schrägstriche, ohne dass etwas zwischen Ihnen bedeutet nichts, eine leere Zeichenfolge.

benennen Sie verarbeiten jeden “.c” – Datei in der Reihe. Es wird eine Suche nach “sl_” im Dateinamen. Wenn es gefunden wird, wird es ersetzt durch nichts. In anderen Worten, der Suchbegriff wird gelöscht.

Die zweite Verwendung des Befehls ls wird bestätigt, dass die “sl_ -” prefix wurde entfernt von jedem “.c” – Datei.

Limit Änderungen, die auf Bestimmte Teile des Dateinamen

Lassen Sie uns verwenden Sie ls, um zu schauen, Dateien, die den string “param” in Ihrem Dateinamen. Dann werden wir, verwenden, umbenennen, ersetzen Sie die Zeichenfolge, mit der string “parameter”. Wir werden verwenden Sie ls, einmal mehr zu sehen, die Wirkung der Befehl zum umbenennen gehabt hat, auf diese Dateien.

ls *param*
rename ‘s/Parameter/parameter”*.c
ls *param*

Vier Dateien gefunden, die “param” in Ihrem Dateinamen. param.c, param_one.c, und param_two.c alle haben “param”, die am Anfang Ihrer Namen. third_param.c hat “param” am Ende seines namens, kurz vor der Verlängerung.

Der rename-Befehl wird die Suche nach “param” überall in den Dateinamen, und ersetzen Sie es mit “parameter” in allen Fällen.

Die zweite Verwendung der ls-Befehl zeigt uns, dass das genau das ist, was passiert ist. Ob “param” wurde am Anfang oder am Ende des Dateinamens, es wurde ersetzt durch “parameter.”

Wir können Perl-Metazeichen zu verfeinern, das Verhalten der mittleren expression. Metazeichen sind Symbole, die Positionen zu vertreten, oder Sequenzen von Zeichen. Zum Beispiel, ^ bedeutet “Anfang einer Zeichenkette,” $ bedeutet “Ende einer Zeichenkette,” und . bedeutet ein beliebiges einzelnes Zeichen (außer einem newline-Zeichen).

Wir sind mit dem start der Zeichenkette Metazeichen ( ^ ) zu beschränken unsere Suche auf den Anfang des Dateinamen.

ls *param*.c
rename ‘s/^ – parameter/Wert/’ *.c
ls *param*.c
ls-Wert*.c

Die Dateien, die wir zuvor umbenannt aufgeführt sind, und wir können sehen, dass die Zeichenfolge “parameter” am Anfang von drei Dateinamen und es ist am Ende einer der Dateinamen.

Unser umbenennen-Befehl verwendet, der start der Zeile (^) Metazeichen vor dem such-Begriff “parameter.” Dieser sagt, “umbenennen”, um nur den Suchbegriff gefunden worden, wenn es sich am Anfang des Dateinamens. Der such-string “parameter” wird ignoriert, wenn es irgendwo anders im Dateinamen.

Überprüfen Sie mit ls, wir können sehen, dass der Dateiname, der hatte “parameter” am Ende des Dateinamens wurde nicht verändert, aber die drei Dateinamen hatte, dass die “parameter”, die am Anfang Ihrer Namen haben die Suchzeichenfolge ersetzt durch die Ersatz-Begriff “Wert”.

Die Kraft benennen Sie liegt in der macht von Perl. Alle von der macht von Perl zur Verfügung.

Suche Mit Gruppierungen

benennen Sie hat noch mehr tricks in petto. Wir betrachten den Fall, wo Sie möglicherweise Dateien mit ähnlichen Zeichenfolgen im Namen haben. Sie sind nicht genau die gleichen Saiten, so dass eine einfache Suche und substitution funktioniert hier nicht.

In diesem Beispiel verwenden Sie ls, um zu überprüfen, welche Dateien wir beginnen mit “str”. Es gibt zwei von Ihnen, string.c und erwürgen.c. Wir können benennen Sie die beiden Saiten auf einmal mit einer Technik namens gruppieren.

Der zentrale Ausdruck dieser Befehl umbenennen, werden Suche nach Zeichenfolgen innerhalb von Dateinamen die Zeichenfolge “stri” oder “Straße”, wo diese Sequenzen sind sofort gefolgt von “ng”. In anderen Worten, unsere Suche nach Begriff suchen wird für “string” und “strang”. Die substitution Begriff ist “bang”.

ls str*.c
rename ‘s/(stri|stra)ng/bang/’ *.c
ls ban*.c

Mit ls ein zweites mal bestätigt, dass string.c hat sich bang.c und erwürgen.c-Spange.c.

Mit Übersetzungen Mit ” umbenennen

Der rename-Befehl können Aktionen auf den Dateinamen aufgerufen übersetzungen. Ein einfaches Beispiel für eine übersetzung zu zwingen, eine Reihe von Dateinamen in Großbuchstaben.

In den umbenennen-Befehl unten beachten Sie, dass wir nicht mit einem s/, um das zentrale Ausdruck verwenden wir y/. Dieser erzählt umbenennen, wir sind nicht der Durchführung der substitution; wir durchführen einer übersetzung.

Die a-z-Begriff ist ein Perl-Ausdruck, der bedeutet, dass alle Kleinbuchstaben in der Reihenfolge von a-z. Ebenso die A-Z-term repräsentiert alle Großbuchstaben in der Reihenfolge von A bis Z.

Der zentrale Ausdruck in diesem Befehl könnte umschrieben werden “wenn die Kleinbuchstaben von a bis z finden Sie in den Dateinamen ersetzen Sie Sie mit den entsprechenden Zeichen aus der Reihenfolge der Großbuchstaben von A bis Z.”

Zu zwingen, den Dateinamen von allen “.prg-Dateien” in Großbuchstaben, verwenden Sie diesen Befehl:

rename ‘y/a-z/A-Z/’ *.prg

ls *.PRG

Der Befehl ls zeigt uns, dass alle die “.prg” Dateinamen werden jetzt in Großbuchstaben geschrieben. In der Tat, werden genau genommen, sind Sie nicht “.prg” – Dateien mehr. Sie sind “.PRG” – Dateien. Linux ist case-Sensitiv.

Wir können rückgängig machen letzten Befehl durch die Umkehrung der position der a-z und a-Z-Begriffe, die in der zentrale Ausdruck.

rename ‘y/A-Z/a-z/’ *.PRG

ls *.prg

Sie (Wo|Do)n nicht Perl Lernen in Fünf Minuten

Griff zu bekommen Perl ist gut investierte Zeit. Aber zu starten, verwenden Sie die zeitsparenden Funktionen von der rename-Befehl, Sie brauchen nicht zu viel Perl-Kenntnisse überhaupt zu ernten große Vorteile in Leistung, Einfachheit und Zeit.

LESEN SIE WEITER

  • › Wie, um zu verhindern, dass die Menschen Stehlen Ihre Pakete
  • › Warum Streaming-Dienste Aufpreis für HD und 4K?
  • › Wie Stream UFC 238 Cejudo vs. Moraes Online
  • › Wie Eingang Kaomoji auf Windows 10 (╯°□°)╯︵ ┻━┻
  • › Wie Sehen die 2019 FIFA Women ‘ s World Cup Online (Ohne Kabel)