PDA

Ver la Versión Completa : Renombrar, copiar o borrar archivos con caracteres raros en el nombre.



jcsl
29-nov-2010, 16:28
Hola.

Algunos archivos aparecen con caracteres "raros" donde deberían aparecer acentos o la letra ñ y no se puede realizar ninguna operación con ellos: no se pueden ejecutar si son programas, no se pueden ver si son archivos multimedia, ni tampoco se pueden renombrar, copiar o mover. Para corregir el problema solo hay que cambiar el nombre del archivo o directorio ejecutando el siguiente comando desde una consola y en el mismo directorio donde esté el archivo[1]:


mv nombre_antiguo nombre_nuevo

Sin embargo, esta forma no funciona siempre; la siguiente sí:


Obtener el inode[2] del archivo:

ls -il nombre_del_archivo_problemático

El resultado que se obtiene es una línea que empieza con un número, el inode del archivo.


Renombrar el archivo ejecutando la orden:

find . -inum número_del_inode -exec mv -i {} nombre_nuevo \;

Ejemplo: cambiar el nombre al archivo xx�xxx.avi[3].


ls -il xx�xxx.avi
786952 -rw-r--r-- 1 xxx users 0 nov 29 15:00 xx�xxx.avi
find . -inum 786952 -exec mv -i {} xxx.avi \;

LLegados a este punto el archivo ya tiene un nombre válido y se puede trabajar de manera normal con él.
Si en vez de un solo archivo se tienen varios este método puede resultar demasiado laborioso. Una alternativa es instalar y usar un programa, también de consola, llamado convmv[4]. Para instalarlo desde la consola se puede usar el comando zypper:


sudo zypper in convmv

Después, y una vez situados en el directorio donde están los archivos, se corrigen los nombres con el comando:


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

en el que los parámetros que se indican tienen el siguiente significado:


-r: para corregir los ficheros de modo recursivo, es decir, los del mismo directorio y los que estén en directorios dentro de él (subdirectorios).
-f: es la codificación de caracteres que se piensa (o se sabe) que tienen los nombres de archivo que muestran los caracteres raros. En muchas ocasiones estos archivos provendrán de máquinas Windows que usan la codificación por defecto Windows-1252 o CP-1252. Para ver la lista de codificaciones que se puede usar ejecutar convmv --list.
-t: es la codificación de caracteres a la que se quiere convertir los nombres de archivo. Normalmente es utf-8.
--notest: si no se indica solo prueba, pero no hace ningún cambio. Obsérvese que usa dos guiones al principio y no uno como los otros parámetros. Es conveniente probar antes sin este parámetro porque muestra cómo quedarían los nombres; si el resultado no es correcto se prueba otra codificación, y cuando se de con la correcta, entonces se añade el parámetro.

*: es un comodín que indica "todos los archivos". Por tanto, si se trata de un archivo comprimido es mejor descomprimirlo en un directorio para él solo y así evitar que la operación pueda afectar a otros ficheros que estén en su mismo directorio.

Naturalmente, si alguno de los parámetros indicados no va a ser de utilidad no hay que incluirlos. Además, las codificaciones del ejemplo son solo eso, un ejemplo, y puede que se tenga que usar otras. Para ver la lista de opciones que soporta convmv ejecutar convmv --help, y para ver su archivo de ayuda man convmv.

También hay otras alternativas, entre ellas:


Midnight Commander (http://es.wikipedia.org/wiki/Midnight_Commander)[5]: es un gestor de ficheros para consola que puede ser capaz de permitir cambiar los nombres de archivo o manipularlos. Pertenece al paquete mc.
ThunarBulkRename (http://thunar.xfce.org/pwiki/documentation/bulk_renamer): es un programa para renombrar archivos en lote (en grupo, aunque también puede cambiar el nombre de uno solo) con interfaz gráfica (las ventanas normales). Con él no he tenido problemas a la hora de renombrar archivos con nombres raros. Pertenece al paquete thunar. Un pequeño inconveniente es que si se instala dicho paquete se pueden instalar unos cuantos más si no se sabe manejarlos bien (por las dependencias), aunque ocupan poco espacio.


[1] En la consola se utiliza la orden cd ruta para cambiar de directorio. Si el archivo problemático está, por ejemplo, en el directorio /home/xxx/descarga, ejecutando la orden cd /home/xxx/descarga se cambiará a dicho directorio. Para más información sobre el comando ejecutar la orden man cd en la consola.
[2] El inode de un archivo es un número que lo identifica de forma unívoca en el sistema de archivos.
[3] Como no se sabe cuál es el carácter "raro", para escribir su nombre se puede copiar y pegar con el ratón o pulsar la tecla tabulador antes del carácter problemático para que se termine de escribir automáticamente. Por ejemplo:

ls -il xx[en este punto pulsar la tecla tabulador para que el nombre del archivo se termine de escribir automáticamente]
[4] Fuente: el blog (http://bishoujolinux.comxa.com/2010/04/unicode-en-opensuse-y-kde4/) de zchronos (http://www.forosuse.org/forosuse/member.php?u=9793).
[5] Según comenta DiabloRojo (http://www.forosuse.org/forosuse/member.php?u=311) en Como eliminar archivos i carpetes de la papelera (http://www.forosuse.org/forosuse/showthread.php?p=130973#post130973), al menos se puede usar para borrarlos.

Un saludo.

tranzorx
01-dic-2010, 19:33
Muchas gracias por la info hermano.
Este problema lo he tenido yo muchas veces cuando dejo el jDownloader a descargar y me descomprime los archivos con la utilidad que lleva incorporada.
Últimamente me he dado cuenta de que si en vez de descomprimir los trozos con la utilidad que lleva el propio programa lo hago con el unrar, no me pasaba.
Oye... que he llegado a tener que pasarme los trozos al win2 para hacerlo con el WinRAR.

Probaré el truco a ver que tal.

Kind regards, TranzorX!!

P.D.:
Si funciona, que no lo dudo, lo pondré en el tutorial que estoy haciendo sobre el jDownloader. :adios:

jelop391
18-dic-2010, 14:48
gracias por la info!

Saludos.

tranzorx
18-dic-2010, 19:40
Juer... que me aspen, pero el amigo jelop391 se ha dado de alta en el foro con la única intención de dejar un par de backlink hacia su página de psicología.
Está muy bien el trabajar el SEO, pero por lo menos podrían dejar algo de contenido y aportar algo de info para el foro. ¿Muy descarado no...?


gracias por la info!
Saludos.


¡¡Menudo aportazo para la comunidad!!
_____________________________


Bueno... a lo que vamos.

He probado todos los trucos y métodos con uno de esos archivo antipáticos que llevan el carácter �.
No me ha funcionado ninguno salvo el convmv que si que me ha funcionado en un par de casos.
Pero no directamente. Me ha generado un tercer carácter igual al símbolo matemático de "conjunto vacío", y después no he tenido ningún problema en volver a cambiarlo por el que fuere en modo gráfico.

Sigo investigando...

Regards!!

jcsl
18-dic-2010, 23:06
Hola.

Me parece que me equivoqué al escribir el comando con el inode. Prueba si funciona así:


find . -inum número_del_inode -exec mv {} nombre_nuevo \;

en vez de así:


find . -inum número_del_inode -exec mv -i {} nombre_nuevo \;

y en última instancia así:


find . -inum número_del_inode -exec mv {} nombre_nuevo ;

Un saludo.

tranzorx
26-dic-2010, 00:20
Gracias por la corrección, amigo jcsl.
Lástima que en este momento no esté haciendo descargas, que suele ser la principal fuente de problemas con los caracteres acentuados.

Creo que ya lo he dicho en más de una ocasión, pero el jDownloader tiene un sistema de descompresión que deja bastante que desear.
Antes lo tenía configurado para que me borrase automáticamente los RAR, nasa más extraídos los archivos, pero ahora no los borra, porque cuando empieza a ver errores en los archivos, descomprimo manualmente con el "unrar", y no me genera esos errores.

Volveré a probar tus trucos tan pronto tenga ocasión, y ya te comento.
Probablemente ya será el año que viene.

En todo caso, feliz navidad, y nos vemos en el foro el año que viene.

Regards!!!

jesusx
05-mar-2011, 00:27
Hola, el post es algo viejo pero el otro día me paso que no podía renombrar, eliminar ni nada, un archivo que se me corrompió al aparecer un error al guardarlo. Pues bien, a mi no me funcionó ningún comando de los mencionados o bien, yo no supe aplicarlos XD... por si hay alguien que le pasa, con "midnight commander" pude renombrarlo y eliminarlo sin ningún problema y como usuario normal... Solo quería compartirlo. Salu2:adios:

jcsl
05-mar-2011, 23:08
Hola.

Me vais a tener que decir de dónde bajáis los archivos XD. Mira que me han salido algunos con nombres raros al descomprimirlos, pero no he tenido problema para cambiarlos del modo en que lo explico. Pero bueno, gracias a jesusx tenemos una forma más de arreglar el problema.

Un saludo.

victorhck
06-mar-2011, 13:22
Muuuuuuuuuchas gracias a jesusx por su aporte. Tampoco a mi me habían funcionado las soluciones anteriores. Y siguiendo el comentario de jesusx con midnight comander me lo borro sin problemas!! :aplausos: :aplausos:
Saludos...

jesusx
06-mar-2011, 14:28
Hola.

Me vais a tener que decir de dónde bajáis los archivos XD. Mira que me han salido algunos con nombres raros al descomprimirlos, pero no he tenido problema para cambiarlos del modo en que lo explico. Pero bueno, gracias a jesusx tenemos una forma más de arreglar el problema.

Un saludo.
Hola jcsl no lo bajé de ningún sitio, fué un archivo con extensión .xml que se corrompió cuando lo intentaba guardar "cinelerra" porque se me colgó el programa XD... De todas formas, no son méritos míos pues lo probé después de leer por la red, no recuerdo donde lo leí...Salu2:adios:

XisEme
06-mar-2011, 17:31
... no son méritos míos pues lo probé después de leer por la red ...Pues y creo que saber buscar tiene su mérito.
Encontrar y compartir; también.

jcsl
06-mar-2011, 19:35
Hola.

Anda que cómo estamos todos de la vista, y en mi caso también de la memoria XD. Midnight Commander es una de las alternativas que puse en la guía junto con una referencia, al final, a un mensaje donde DiabloRojo comentaba que se podía usar para borrar archivos. La otra es ThunarBulkRename, que se instala al instalar Thunar, el administrador de archivos de Xfce, aunque este es más específico para los problemas de cambiar nombres.

Un saludo.

victorhck
06-mar-2011, 22:00
venga, pues entonces tambien su reconocimiento para jcsl :aplausos:
Cierto el compartir conocimientos tambien tiene su mérito :afirmar:

krasty
26-ago-2012, 20:51
Hola.

Me parece que me equivoqué al escribir el comando con el inode. Prueba si funciona así:


find . -inum número_del_inode -exec mv {} nombre_nuevo \;

en vez de así:


find . -inum número_del_inode -exec mv -i {} nombre_nuevo \;

y en última instancia así:


find . -inum número_del_inode -exec mv {} nombre_nuevo ;

Un saludo.

No te equivocaste. La segunda de las opciones que mencionas, que es la que inicialmente sugeriste, me funciona perfectamente.

Saludos

jorgemontoyab
11-ene-2013, 16:46
Hola, el post es algo viejo pero el otro día me paso que no podía renombrar, eliminar ni nada, un archivo que se me corrompió al aparecer un error al guardarlo. Pues bien, a mi no me funcionó ningún comando de los mencionados o bien, yo no supe aplicarlos XD... por si hay alguien que le pasa, con "midnight commander" pude renombrarlo y eliminarlo sin ningún problema y como usuario normal... Solo quería compartirlo. Salu2:adios:

Excelente truco, gracias jesusx :aplausos: