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

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

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

Mini-Howto

convmv (zuletzt geändert am 2007-12-23 22:47:20 durch localhost)