Home / Linux / QuickTipp: Dateien oder Ordner Leerzeichen (Whitespaces) durch Underscore (_) ersetzen
terminal-icon

QuickTipp: Dateien oder Ordner Leerzeichen (Whitespaces) durch Underscore (_) ersetzen

GNU/Linux Betriebssysteme und deren ADMINs hassen Leerzeichen in Ordnernamen und Dateinamen! Mit diesem Befehl werden Leerzeichen durch Underscores ersetzt:

„Standard Windows Anwender“ verwenden gerne Datei- und Ordnernamen mit Leerzeichen. Warum? Weil es egal ist und keiner darüber nachdenkt. *g* Unter Linux ist das ein bisschen anders. Verwendet man Ordner und Dateinamen mit Leerzeichen gibt es beim Skripten immer Schwierigkeiten und Namen müssen explizit escaped werden. Also sollte man sich in der Linux Welt angewöhnen Dateinamen ohne Leerzeichen zu verwenden bzw. statt dem Leerzeichen ein _ (Underscore) zu verwenden.

Leerzeichen durch Underscores ersetzen

Mit folgendem Befehl werden alle Whitespaces, Leerzeichen ( ) durch Underscores, Unterstriche (_) ersetzt:

rename 's/\s/_/g' *

Tipp: wenn man zusätzlich ein -n verwendet, wird ein Trockenlauf durchgeführt und es kann kontrolliert werden ob auch die richtigen Dateien umbenannt werden:

rename -n 's/\s/_/g' *
QuickTipp: Dateien oder Ordner Leerzeichen (Whitespaces) durch Underscore (_) ersetzen
4 (80%) 14 Bewertungen

Auch cool

HowTo: Oracle Java 8 JRE / JDK- Installation und Upgrade unter Debian Wheezy

Anleitung zur Installation von Oracle Java 8 unter Debian Wheezy und Upgrade von Java 7 auf …

7 Kommentare

  1. Hi,

    aufpassen. Linux ist hier nicht gleich linux. Auf anderen Systemen versteht rename kein regex. Dort muss mann dann stattdessen prename installieren. Bei Ubuntu heißt prename einfach rename. Es ist also das Gleiche 🙂

    Übrigens: prename ist ein Perl-Script.

  2. Auf der einen Seite die Admins ansprechen, auf der anderen die normalen Nutzer. Klar dass das zu unterschiedlichen Ergebnissen führt. Wäre anders herum doch auch so.

    Unter Windows ist diese Angewohnheit Leerzeichen durch Unterstriche zu ersetzen übrigens durchaus verbreitet. Zumindest bei mir und einigen Windows-Admins die ich kenne. Ja, das ist jetzt nicht wirklich aussagekräftig. 😉

    Unter Linux habe ich mir mal ein Script für solch eine Sache zusammengebaut (kann man vermutlich besser lösen). Dabei wird allerdings rekursiv gearbeitet. Also eventuell mit Vorsicht genießen.

    #!/bin/sh
    find . | while read leer; do
    new=`echo $leer | tr “ “ „_“`
    if [ „$unter“ != „$leer“ ]; then
    echo $leer “ => “ $unter
    mv „$leer“ „$unter“
    fi
    done

  3. Der Ansatz gefällt mir: damit der Pfusch in den Scripten weiter funktioniert, benennt man den Users die Dateien um.

    • Muhahaha 😉 Flame On!!! *g* das sollte versteckt auch ein kleiner Flamepost werden 😀 Irgendwie muss ja ADMIN seinen Frust abbauen. Bloggen is dabei besser als Gewalt 😀

  4. Gerade als Anfänger tut man sich mit Linux noch sehr schwer. Aber deine Seite habe ich schon lange unter meinen Lesezeichen gesetzt. Vielen Dank für dieses Skript hat mir sehr geholfen.

  5. 75000 Dateien von meinem windowsnutzenden Betreuer per Hand umzubenennen wäre etwas mühselig geworden. Genau wonach ich gesucht habe. Vielen Dank!