L i n u x    B e f e h l    rename

Kommando rename benennt Dateien mit Hilfe von unterschiedlichen Methoden um.

  1. Verwendung von Kommando mv

    Der Standardweg zur Umbenennung einer Datei in der Unix / Linux Welt ist anhand des bash Kommandos mv (move): mv "verschiebt" eine Datei (unter einen anderen Namen oder Pfad). Will man mehrere Dateien verschieben / umbenennen muss eine (bash) Funktion nach folgender generischer Struktur programmiert werden:

    for sourceFile in ListOfFiles; do
    mv -v "$sourceFile" "$targetFile"
    done

    1. ListOfFiles ist die Liste der Quelldateien (sourceFile ...).
    2. Die Liste der entsprechenden Zieldateien ist (targetFile ...).

    Beispielaufgabe: Oft wird die Quelldatei (sourceFile) durch Muster-Ersetzen in die Zieldatei (targetFile) überführt: Die Dateien (File_01.txt ... File_0n.txt) werden in (Datei_01.txt ... Datei_0n.txt) umbenannt, indem (Muster) File von (Muster) Datei ersetzt wird.

    Das Skript bash_mv_files_arg1_arg2.sh zeigt wie solche Funktion konkret programmiert werden kann. Es benötigt 2 Argumente:

    1. Arg1: Muster zur Identifikation der Quelldateien (z.B. File)
    2. Arg2: Die Umbenennung der Quelldateien erfolgt durch das Ersetzen mit dem Muster Arg2 (z.B. Datei)

    Um die Beispielaufgabe oben (im laufenden Verzeichnis) durchzuführen, wird das Skript bash_mv_files_arg1_arg2.sh File Datei aufgerufen.

  2. Verwendung von Kommando rename

    Das Kommando rename wird von Linux unterstützt - jedoch nicht von OSX. Aber, auch für Linux muss rename explizit installiert werden (sudo apt-get install rename). Der Vorteil von rename ist, dass es unmittelbar die Schritte vollführt, die im Skript bash_mv_files_arg1_arg2.sh programmiert wurden.

    rename -v 's/arg1/arg2/' ListOfFiles

    1. arg1: Das zu ersetzende Muster (zur Identifikation der Quelldateien, z.B. File)
    2. arg2: Die ersetzende Muster (zur Umbenennung der Quelldateien, z.B. Datei)
    3. ListOfFiles: stellt die Gesamtmenge der Dateien, welche vom Vorgang berücksichtigt wird. * bedeutet alle Dateien des laufenden Verzeichnisses, *.pdf (alle Datei mit der Erweiterung "*.pdf"), etc.

    Zum Beispiel:

    rename -v 's/File/Datei/' *

    Im Beispiel wird das Prüfen und ggf. Ersetzen (des Musters "File" durchs Muster "Datei") für alle Dateien im (laufenden) Verzeichnis durchgeführt (ListOfFiles=*). Meistens werden nur Dateien mit einer bestimmten Endung berücksichtigt (z.B. ListOfFiles=*.pdf).

    Weitere Infos zum Befehl rename entnehmen Sie z.B. folgenden Websites (Englisch):

  3. Weiterführende Infos

    1. Linux manpage mv
    2. Linux manpage rename

    1. Vivek Gite: How To: rename files

    1. askubuntu: script to rename files
    2. stackoverflow: script to rename files
    3. linuxhint: script to rename_files