Linux & Co.Office & BusinessSoftware

Anleitung: Dateien massenhaft im Linux-Terminal umbenennen

Drei Dateien lassen sich wunderbar im Dateibrowser umbenennen, 30 aber besser auf der Kommandozeile. Unter Linux ist das erfreulich flexibel und wir zeigen Euch ganz kurz und bündig, wie Ihr einerseits alle Dateien eines Typs komplett neu benennt und schlicht durchnummeriert. Andererseits könnt Ihr auch Teile des Namens behalten, beispielsweise die Nummerierung, aber obskure Kamera-Präfixe wie „DMC_018478xl“ durch ein schickes „Urlaub_Bahamas_“ ersetzen. Und so geht’s:

Beginnen wir mit der kompletten Neubenennung: Alle txt-Dateien sollen nach text-1.txt, text-2.txt und so weiter umbenannt werden. Folgender Befehl hilft:
$ ls *.txt | cat -n | while read n f; do mv "$f" "text-$n.txt"; done
Die Zeile besteht aus drei Teilen: ls listet alle txt-Dateien auf und der cat-Befehl nummeriert die Dateinamen. Die while-Schleife durchläuft jetzt diese n Dateien und benennt sie per mv um – „$f“ steht für den alten Dateinamen. Der neue Dateiname lautet dann „text-$n.txt“, wobei $n durch die entsprechende Ziffer der Nummerierung ersetzt wird.

while
Dass man für simples Durchnummerieren tatsächlich eine Schleife braucht ist nicht fein, aber einmal dran gewöhnt, geht’s ganz fix.

Im zweiten Fall sollen Dateien nach dem Muster „unfug1.jpg“, „unfug2.jpg“ nach „foto_1.jpg“ etc. umbenannt werden, allerdings sollt die Original-Nummerierung bestehen bleiben. Versucht es damit:
$ ls *.jpg | egrep unfug | rename -n 's/\D{5}(\d)/foto_$1/'
Wieder werden per ls die gewünschten Dateien aufgelistet, anschließend sucht egrep diejenigen heraus, die „unfug“ heißen. Nun kommt rename: Das „-n“ sorgt dafür, dass nur simuliert, nicht umbenannt wird – man verliert hier schnell mal Dateien; entfernt den Schalter einfach, wenn Ihr glücklich seid. Es folgt ein regulärer Ausdruck in Perl-Notation. In Kürze: Das „s“ steht für ersetzen (substitute). Nach dem / folgt, was ersetzt werden soll, hier fünf Buchstaben („\D{5}“), gefolgt von einer Ziffer („\d“) – also „unfug1“. Die runden Klammern bei der Ziffer sorgen dafür, dass diese Ziffer in der Variablen $1 gespeichert werden. Nach dem folgenden / folgt der neue Name, hier „foto_“ plus den Inhalt der Variable $1, also die jeweilige Ziffer aus dem Originalnamen.

rename
Ihr könnt beliebige Namensteile behalten, packt das gewünschte einfach in runde Klammern und sprecht es über $1, $2 etc. an

Und ftw:
rename_head

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.