Sonderzeichen aus Dateinamen per bash entfernen

Komische Dateinamen auf der Netzwerkfestplatte? Das kann durch den gemischten Zugriff von mehreren Betriebssystemen passieren (z.B. Windows gemischt mit macOS und Linux). Dann hilft nur noch ein Bereinigen der Dateinamen und zwar automatisch.

Dazu benötigt man nur ein kleines bash-Skript mit einer Menge regex-Voodoo. Und schon ist man fertig. Eingesetzt habe ich dieses Skript auf der Synology, da ich dort Dateinamen mit ‚?‘ im Namen hatte bzw. mit seltsamen anderen Sonderzeichen.

#! /bin/sh
for i in *
do
 if echo "$i" | grep -q "\?"
 then 
  mv "$i" "${i/\?/}"
 fi
 if echo "$i" | grep -q "_"
 then
  mv "$i" "${i//_/ }"
 fi
 if echo "$i" | grep -q "\""
 then
  mv "$i" "${i/\"/}"
 fi
 if echo "$i" | grep -q "\""
  then
    mv "$i" "${i/\"/}"
	 fi
done

Schreibe einen Kommentar