Recodefilename

De FJWiki
Saltar a: navegación, buscar

Siempre hay errores cuando se copia de particiones windows a particiones linux respecto a la codificación de caracteres. Por tanto, aquí hay una solución (aún no recursiva :P), para solucionar esos errores.

Uso

Para usar el script:

$ recodefilename (codificación de origen) (codificación de destino) (archivos)

Para saber la lista de codificaciones disponibles, usar:

$ iconv --list

Por ejemplo, transformar del iso latino "normal" a utf8 todo el contenido del directorio actual podría usarse:

$ recodefilename ISO8859-1 UTF-8 *

Códifo fuente de recodefilename

#!/bin/bash
#
# Hecho por FJ.
# Sea GPL!
#
# Inspirado en: http://www.usenet-forums.com/linux-general/86205-messed-up-utf8-filenames-ext3-after-some-copy.html

if [ -z "$3" ]; then
  echo "Uso: $0 <codificacion origen (ISO8859-1)> <codificacion destino (UTF-8) <archivo1> [<archivo2>...]"
  exit 1
fi

origen=$1
destino=$2

while [ -n "$3" ]; do
  nuevonombre=`echo $3|iconv -f $origen -t $destino`
  if [ "$nuevonombre" != "$3" ]; then
    mv "$3" "$nuevonombre"
  fi
  shift
done