Cambiar la codificación de los ficheros y directorios.

En ocasiones vemos que el nombre de nuestros ficheros o directorios traídos desde otra maquina, no se leen correctamente o tienen caracteres que sustituyen a otros, pues bien, esto lo podemos corregir usando convmv un programa que nos va a hacer la vida mas simple y útil, así que vamos a ver como funciona.

  1. ¿Cual es la codificación de nuestro Sistema Operativo? Para ello, tecleamos el siguiente comando en la terminal; echo $LANG En nuestro caso, nos interesa es_ES.UTF-8, si no es así, podemos configurar la codificación utilizando; dpkg-reconfigure locales Esto nos abrirá un asistente para su configuración, deberemos utilizar las flechas de dirección para movernos y la barra espaciadora para marcar o desmarcar las opciones que nos interesen. Tras cambiar esto, yo suelo hacer un apt update y un apt dist-upgrade por si faltan ficheros para que funcione correctamente la codificación cambiada.
  2. ¿Cual es la codificación de nuestros ficheros? Para ello, deberemos instalar una utilidad, chardet abreviatura de (characte detection), si no lo tenemos instalado, necesitaremos la utilidad pip de python, así que ejecutamos; apt install python-pip a continuación, instalamos chardet con pip install chardet y realizaremos una prueba, tecleamos; chardet nombrefichero si todo a funcionado, obtendremos la codificación de nuestro fichero.
  3. ¿Que nos falta? Obviamente la utilidad convmv la cual, instalaremos de manera muy facil; apt install convmv
  4. ¿Como realizo una prueba a ver si queda todo correcto? Para ver como nos quedaría nuestro fichero renombrado, utilizaremos el comando; convmv -f cp850 -t utf-8 nombrefichero donde «cp850» a de ser la codificación de tu fichero actual y «utf-8» la de destino. Con esto, no modificamos nada, solo nos muestra como quedaría el nombre tras su re-codificación.
  5. ¿Como cambio la codificación de manera permanente a mis ficheros? Tan simple como agregar al comando anterior la opción «–notest» quedando de la siguiente manera; convmv --notest -f cp850 -t utf-8 nombrefichero y listo.
  6. ¿Cuales son las codificaciones soportadas por convmv? Para ver una lista completa, ejecutamos; convmv --list
  7. ¿Como modifico múltiples ficheros y directorios al mismo tiempo? Pues como muchas utilidades en Linux, nos permite hacer esto en cadena, para no estar 300 años tecleando el comando o para no tener que hacer un script complejo, este modo se llama recursivo y suele estar definido con el parámetro «-r» o «-R» (ojo con esto, ya que unas utilidades acepta una u otra para distintas cuestiones, se recomienda hacer uso del parámetro «–help» para estar seguros.) en nuestro caso, nos quedaría así; convmv --notest -r -f cp850 -t utf-8 . esto nos modificaría todo lo que esté dentro de donde nos encontremos, para lo cual utilizar cd /directorio para navegar donde queremos antes de usar este comando, o bien puedes utilizarlo así; convmv --notest -r -f cp850 -t utf-8 /directorio/*y todo lo que se encuentre dtrás de /directorio será modificado.
Categorías ÚTILES