convmv ist ein kleines Komandozeilen-Programm um Dateinamen von einem Zeichensatz in einen anderen zu konvertieren. Ausserdem kann es sehr bequem Dateinamen in Groß- bzw. Kleinschreibung ändern.
Homepage: http://www.j3e.de/linux/convmv/
Dokumentation: http://www.j3e.de/linux/convmv/man/
Lizenz: GPL
Tipps & Tricks
Alle Dateinamen im aktuellen Verzeichnis und Unterverzeichnissen von ISO-8859-15 nach UTF-8 konvertieren:
convmv -f iso-8859-15 -t utf-8 -r .
Alle Dateinamen im aktuellen Verzeichnis rekursiv in upper case oder lower case (Groß/Kleinschreibung) ändern:
convmv --upper -r . (resp. --lower für lowercase conversion)
Debian Woody
Unter Debian Woody fehlt die passende Perl-Version 5.8. Es kann jedoch darauf ausgewichen werden, die Dateien von einem anderen Rechner aus, via NFS umzubenennen. Alternativ dazu können die auf recode basierenden Scripte verwendet werden:
$ apt-get install recode
Es empfiehlt sich, die beiden folgenden Skripte in ein Verzeichnis des $PATH zu legen, z.B. nach /usr/local/bin
- convert_all.sh
if [ "$1" = "" ]; then echo "Usage: $0 <folder>" exit 1; fi # sort reverse to move files before folders! find "$1" -print | sort -r | awk '{printf "convert_one.sh \"%s\"\n", $0;}' | sh
- convert_one.sh
FOLDER=`dirname "$*"` SOURCE=`basename "$*"` TARGET=`echo -n "$SOURCE" | recode iso-8859-15..utf8` if [ "$SOURCE" != "$TARGET" ]; then echo "FOLDER: $FOLDER" echo "CONVERT: $SOURCE" echo "INTO: $TARGET" mv -- "$FOLDER/$SOURCE" "$FOLDER/$TARGET" fi
Anschliessend müssen diese Skripte noch ausführbar gemacht werden:
$ chmod +x convert_one.sh convert_all.sh