viernes, 6 de diciembre de 2013

Renombrar archivos con caracteres raros en el nombre

En algunas ocasiones cuando usamos ficheros que se han creado en entorno windows, y estos incluyen en el nombre algún acento, alguna letra Ñ o algún carácter especial, aparecen símbolos como este �. Sobre todo al descomprimir archivos .rar o .zip

Esto solo pasa con archivos que se han creado y/o comprimido en entorno Windows, ahora explico el porqué. El problema no proviene de un fallo de incompatibilidad o configuración de Debian GNU/Linux. Todo lo contrario procede de una incompatibilidad entre el sistema Windows donde el fichero fue creado y/o comprimido y el resto de sistemas operativos existentes.

 En Debian GNU/Linux : 

Al igual que en casi todos los sistemas operativos: Ubuntu, Red hat, Centos, MacOSX, Android, y un largo etc... el formato de codificación de caracteres utilizado es UTF-8, el cual usa un estándar, llamado Unicode, creado y adoptado por la mayoría de empresas del sector, y diseñado para facilitar el tratamiento informático, transmisión y visualización de textos de múltiples lenguajes y disciplinas técnicas además de textos clásicos de lenguas muertas.

 En Microsoft Windows :  

El problema reside en, que el fichero fue comprimido en Microsoft Windows y, como siempre suele hacer Microsoft, no utiliza los estándares tales como UTF-8, usa sus propios formato de codificación no compatibles con el resto (Windows-1252 para idiomas occidentales, Windows-1253 para griego, Windows-1254 para turco, Windows-1256 para árabe,...).  


Gestor de archivos Dolphin

En Dolphin los archivos con dichos caracteres raros en el nombre son inaccesibles, y no podemos hacer prácticamente nada:


- No se puede reproducir (si son archivos multimedia)
- Ni se puede ejecutar (si son archivos de programa; como .Jar de Java, .exe de wine)
- No se puede ver la vista preliminar
- No se puede copiar
- No se puede mover
- No se puede renombrar
- No se puede borrar

En resumen Dolphin no puede gestionar dichos archivos. Esto es un error importante que tiene solución en Debian utilizando otros gestores de archivos, pero que aun no ha sido implementado en Dolphin. Esperamos que los desarrolladores los implementen en futuras versiones.


Soluciones


Existen varias soluciones (cosa normal en entorno Unix / Linux) para corregir este error.
Tales como usar algunos de estos comandos en consola o algunos de estos gestores de archivos en entorno gráfico:

En linea de comando desde una consola:

- mv
- convmv
- mc (Midnight Commander)

En entorno gráfico:

- Konqueror
- Nautilus
- PcMan File Manager 
- Thunar


Algunas capturas de pantallas


Konqueror - observamos como ha detectado el error en la codificación


Aquí vemos como hemos seleccionado el primero de ellos, con el botón derecho del ratón y seleccionamos Cambiar el nombre....


Aquí aparece el nombre con el error para poder substituirlo


Ya le hemos indicado el nuevo nombre, en este caso le hemos corregido el error.


Aquí podemos observar como tenemos 3 archivos que hemos corregido el error.
___________________________________________________________________________


Nautilus, aquí observamos como nautilus, también detecta y puede corregir el error

----------------------------------------------------------------------------------------------------------


PCManFM, este otro gestor de archivos también esta preparado para corregir el error, en las siguientes capturas de pantallas vemos la secuencia de como corregir el error.





=============================================


Thunar, este gestor de archivos es el único capaz de corregir el error en multiples ficheros a la misma vez. 










convmv: Renombrar múltiples archivos o carpetas desde consola

El comando convmv se utiliza para cambiar la codificación de caracteres de los nombres de archivo. No viene instalado por defecto en Debian GNU/Linux. Para instalarlo usamos el programa synaptic, tal y como hacemos siempre en este blog.

# apt-get install convmv




Después, nos situamos en la carpeta dónde están los archivos o carpetas que se quieren corregir y se ejecuta este comando:

convmv -r -f cp1252 -t utf-8 * --notest


Significado de los parámetros del comando:

- -r  -  especifica que el comando corregirá los nombres de archivo de modo recursivo, es decir, los nombres de archivo de los archivos de la carpeta actual y los de todas las carpetas que están incluidas en ésta.
- -f  -  especifica la codificación de caracteres que tienen los archivos que se quieren convertir.
- cp1252  -  codificación de caracteres por defecto de Windows
- -t  -  especifica la codificación de caracteres a la que se quiere convertir los nombres de archivo.
- utf-8  -  codificación de caracteres por defecto en Debian.
- *  -  indica que el cambio afectará a todos los archivos. 
--notest  -  especifica que no es una prueba. Si no se incluye, el comando sólo muestra cómo quedarían los nombres de archivo, pero no realiza ningún cambo.



OBSERVACION: Conviene ejecutar primero el comando sin el parámetro --notest. Si el resultado no es el esperado, se puede probar con otra codificación de caracteres. Para ver la lista de codificaciones disponibles, ejecutar convmv --list. Si alguno de los parámetros indicados no es útil, no hay que incluirlo.  Para ver la lista completa de opciones del comando, ejecutar convmv --help y para ver su página de manual, ejecutar man convmv. Para  salir del comando man,  pulsar q.


 Algunas capturas de pantallas



Aquí podemos ver como dolphin a detectado el error en la codificación de los caracteres, cambiando las vocales acentuadas por el signo + seguido de una interrogación



Como vamos a usar el método de consola, usando el comando convmv, pulsamos en el menú  Ver > Paneles > Terminal.


Observamos como en la parte inferior de dolphin se abre una consola de terminal, ya situada en la carpeta en la cual nos encontramos


Ahora hemos introducido el comando: conmv -r -f cp1252 -t utf-8 * --notest


Aqui he marcado en verde el comando introducido para que sea mas legible



Al pulsar intro, observamos el resultado del comando, observamos como en la columna de la izquierda esta el nombre con el error de codificación, y en la columna de la drecha se encuentra el error ya corregido.









domingo, 3 de noviembre de 2013

Euroges - GT Solutions