Zum Inhalt, überspringe Kopfzeile Zur Navigation, überspringe Kopfzeile
Für die leichte Handhabung von Dateien und Verzeichnissen, speziell in der Shell oder wenn man Dateien zwischen verschiedenen Betriebssystemen austauscht, ist es von Vorteil wenn die Dateinamen keine Sonderzeichen enthalten und nur Kleinbuchstaben benutzen. Liegen nun viele Dateien vor die einen unvorteilhaften Namen haben, so kann das umbenennen der einzelnen Dateien sehr zeitaufwendig und umständlich werden.
Ein kleines Script das vollautomatisch sämtliche Dateien im aktuellen Verzeichnis entsprechend umbenennt.
1: #!/bin/sh 2: 3: for FILE in *; do 4: OLD=$FILE 5: FILE=$(echo $FILE | tr "[A-Z]" "[a-z]") 6: FILE=$(echo $FILE | sed "s/ä/ae/ig") 7: FILE=$(echo $FILE | sed "s/ö/oe/ig") 8: FILE=$(echo $FILE | sed "s/ü/ue/ig") 9: FILE=$(echo $FILE | sed "s/ß/ss/g") 10: FILE=$(echo $FILE | sed "s/ /_/g") 11: FILE=$(echo $FILE | sed "s/__/_/g") 12: FILE=$(echo $FILE | sed "s/!//g") 13: FILE=$(echo $FILE | sed "s/'//g") 14: 15: # Punkt aus Dateiname entfernen 16: if [ $# -ne 0 ]; then 17: if [ "$1" == "-p" ]; then 18: FILE=$(echo $FILE | sed 's/\.//g') 19: fi 20: fi 21: 22: # Datei nur umbenennen falls sich Name aendert 23: if [ "$OLD" != "$FILE" ]; then 24: echo $OLD = $FILE 25: mv "$OLD" "$FILE" 26: 27: # Rechte execute zuruecknehmen 28: if [ $# -ne 0 ]; then 29: if [ "$1" == "-x" ]; then 30: if [ ! -d $FILE ]; then 31: chmod -x "$FILE" 32: fi 33: fi 34: fi 35: fi 36: done
Mit einer For-Schleife wird jeder Dateiname (egal ob Datei oder Verzeichnis) im aktuellen Verzeichnis in der Variabel $FILE abgespeichert. Mit Hilfe des Kommandozeilenprogramms tr wird der Dateiname in Kleinbuchstaben umgewandelt. Danach werden mit den Kommandozeilenprogramm sed die einzelnen Sonderzeichen aus dem Dateinamen ersetzt oder entsprechend entfernt. Nun wird kontrolliert ob der neue Dateiname sich zum original Dateinamen geändert hat. Ist dies der Fall, so wird die Datei umbenannt.
Folgende Parameter sind für das Script möglich:
Zum Inhalt zurück, überspringe Navigation | Zum Seitenanfang