Benennen Sie eine Datei in Bash um
-
Verwenden Sie den Befehl
mv
, um eine Datei in Bash umzubenennen -
Verwenden Sie den Befehl
rename
, um eine Datei in Bash umzubenennen
Mit Hilfe des Bash-Skripts können Sie Ihre Aufgabe automatisieren. Das Umbenennen von Dateien ist eine häufige Aufgabe für alle Arten von Systemen.
Sie können alle Dateien einzeln manuell umbenennen. Wenn Sie jedoch eine Sequenz in Ihrem Dateinamen haben, ist es besser, diese Aufgabe zu automatisieren.
Auf diese Weise können Sie alle Dateien in einem Verzeichnis einfach in der richtigen Reihenfolge umbenennen.
In diesem Artikel stellen wir eine Möglichkeit vor, mit der Sie alle Dateien in einem Verzeichnis einfach umbenennen können. Außerdem werden wir notwendige Beispiele und Erklärungen sehen, um das Thema einfacher zu machen.
Verwenden Sie den Befehl mv
, um eine Datei in Bash umzubenennen
Das Bash-Skript enthält einen eingebauten Befehl namens mv
. Der Befehl mv
wird hauptsächlich verwendet, um Verzeichnisse und Dateien von einem Ort an einen anderen zu verschieben.
Es kann auch zum Umbenennen einer Datei und eines Verzeichnisses verwendet werden. Eine wichtige Sache bei diesem Befehl ist, dass der Dateiname an seinem neuen Speicherort derselbe bleibt, wenn Sie den neuen Namen der Datei nicht angeben.
Die allgemeine Syntax für diesen Befehl lautet $ mv [OPTIONS] SOURCE DESTINATION
. Die verfügbaren Optionen für diesen Befehl sind:
mv -f
- Dieses Flag erzwingt das Verschieben durch Überschreiben einer Zieldatei ohne Aufforderung.mv -i
– Dieses Flag ist für die interaktive Eingabeaufforderung vor dem Überschreiben.mv -u
- Dieses Flag ist für das Update. Dadurch wird die Datei nur verschoben, wenn es sich um eine neue Quelle als das Ziel handelt.mv -v
– Dieses Flag druckt alle Dateien einer Quelle und eines Ziels.man mv
- Dieses Flag öffnet die Hilfeanleitung.
Angenommen, wir haben eine Liste von Dateien mit der folgenden Reihenfolge.
1_file.txt
2_file.txt
3_file.txt
4_file.txt
5_file.txt
6_file.txt
Sehen Sie sich nun das folgende Codebeispiel an.
for file in *.txt
do
mv "$file" "${file/_file.txt/_Textfile.txt}"
done
Im obigen Beispiel haben wir alle Dateien mit dem Typ .txt
umbenannt. Dazu haben wir eine for
-Schleife mit dem Befehl mv
verwendet.
Die allgemeine Syntax für diesen Zweck lautet nun mv "$LoopVar" "${LoopVar/PreviousName.txt/NewName.txt}"
.
Hier müssen Sie beachten, dass Sie eine Schleifenvariable mit dem Dateinamen einfügen müssen; Andernfalls kann es zu Überschreibungen kommen, da es sich um einen vom System generierten Namen handelt.
Wenn Sie nun den obigen Code ausführen, werden Sie sehen, dass alle Ihre Dateien wie unten umbenannt sind.
1_Textfile.txt
2_Textfile.txt
3_Textfile.txt
4_Textfile.txt
5_Textfile.txt
6_Textfile.txt
Eine wichtige Sache für diesen Befehl ist die Angabe eines gemeinsamen Teils des Dateinamens, um die Dateien zu identifizieren. Dies kann der Dateityp oder ein anderes allgemeines Muster im Dateinamen sein.
Andernfalls kann der Befehl möglicherweise nicht alle Dateien erfolgreich umbenennen.
Verwenden Sie den Befehl rename
, um eine Datei in Bash umzubenennen
Es gibt auch einen Drittanbieter-Befehl namens rename
im Bash-Skript. Aber Sie müssen es installieren, bevor Sie es verwenden.
Um diesen Befehl mit Ihrer Shell-Umgebung zu installieren, können Sie dem folgenden Befehl für Ubuntu und Debian folgen.
sudo apt install rename
Danach können Sie Dateien wie die folgende umbenennen.
rename [Your Options] 's/[Current Filename]/[New Filename]/' [Filename]
Dieser Befehl enthält auch einige Optionen wie die untenstehende.
-a
- Diese Option ersetzt alle Dateinamen außer dem ersten.-f
- Diese Option erzwingt ein Überschreiben bestehender Dateien.-h
- Diese Option zeigt den Hilfetext an.-i
– Diese Option zeigt eine Benachrichtigung an, bevor vorhandene Dateien überschrieben werden.-l
- Diese Option ersetzt das zuletzt vorkommende Element anstelle des ersten.-n
- Diese Option führt einen Probelauf durch.-s
– Diese Option benennt das Ziel anstelle des Symlinks um.-v
- Diese Option zeigt die Ausgabe in der ausführlichen Version.-V
- Diese Option zeigt die Befehlsversion an.
Wir können den obigen Satz von Dateien mit dem folgenden Befehl umbenennen.
rename -v 's/_Testfile/_Test/' *.txt
Und es wird die folgende Ausgabe zeigen.
1_Testfile.txt renamed as 1_Test.txt
2_Testfile.txt renamed as 2_Test.txt
3_Testfile.txt renamed as 3_Test.txt
4_Testfile.txt renamed as 4_Test.txt
5_Testfile.txt renamed as 5_Test.txt
6_Testfile.txt renamed as 6_Test.txt
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn