Difference between revisions of "Linux, Borrar o renombrar archivos con caracteres "raros" en su nombre"

From Wiki de Caballero
Jump to navigation Jump to search
Line 20: Line 20:
==Borrar==
==Borrar==
===Borrar usando inode===
===Borrar usando inode===
El [http://en.wikipedia.org/wiki/Inode ''inode''] (''index node'') es una estructura informática que identifica el archivo adentro del sistema operativo, tiene un número identificador al que se hace referencia normalmente usando la palabra ''inode''..
Para borrar usando inode hay que conocer el inode primero. Para esto, adentro de la carpeta donde está el archivo problemático se hace un <code>ls -i</code>, comando que muestra el inode de los diferentes archivos del directorio.
Luego, usando find se borra los inode deseados así:
<syntaxhighlight lang="bash">
find . -inum INODE -exec rm -i {} \;
</syntaxhighlight>


===Borrar usando rm===
===Borrar usando rm===

Revision as of 15:06, 20 January 2014

Hay veces que archivos quedan mal grabados con nombres incorrectos y se pueden ver como nombre??.txt donde los caracteres problemáticos se muestran usando '?'. Esto sucede en Linux cuando se usa una codificación de caracteres diferente a la que usa el sistema por ejemplo.

Para tratar con este tipo de archivos se puede hacer dos cosas, borrarlos o modificar su nombre y que use la codificación apropiada.

Renombrar

Renombrar no es algo tan trivial ya que los caracteres '?' no se pueden escribir en el terminal. Para esto se usa mv y TAB, se escribe mv y luego el o los primeros caracteres del archivo y se usa TAB para rellenar el nombre, luego se tipea el nombre nuevo a asignar.

Este método no funciona si hay dos archivos con el principio del nombre igual hasta que uno de los dos tiene un caracter desconocido.

Cambiar codificación

Este método es parecido al anterior en el sentido de que el archivo se mantiene pero el nombre se corrige, la diferencia es que con este método lo que se hace es "reparar" el nombre del archivo que probablemente tiene una codificación a la usada en el sistema actual; esto puede ocurrir si se subió el archivo usando windows por ejemplo.

Para corregir la codificación se usa el comando convmv (algo así como convert move).

convmv -r -f latin1 -t utf-8 DIR               # Cambia el nombre de DIR pasando de codificación latin1 a utf8, PERO solo hace la prueba no lo cambia, solo muestra el resultado
convmv --notest -r -f latin1 -t utf-8 DIR # Cambia el nombre de DIR pasando de codificación latin1 a utf8

Borrar

Borrar usando inode

El inode (index node) es una estructura informática que identifica el archivo adentro del sistema operativo, tiene un número identificador al que se hace referencia normalmente usando la palabra inode..

Para borrar usando inode hay que conocer el inode primero. Para esto, adentro de la carpeta donde está el archivo problemático se hace un ls -i, comando que muestra el inode de los diferentes archivos del directorio.

Luego, usando find se borra los inode deseados así:

find . -inum INODE -exec rm -i {} \;


Borrar usando rm