sábado, 22 de mayo de 2010

Buscar y renombrar archivos y directorios en lote en GNU/Linux (métodofácil, divertido, y para toda la familia)

Si, como yo, tienes un disco duro con partición ext3 y con archivos/directorios guardados en modo no UTF-8, es probable que te encuentres con artefactos como "�" en el nombre de los ficheros que te impiden moverlos a otro disco con otro tipo de partición que tenga un sistema de ficheros menos tolerante con este tipo de carácteres (como FAT o NTFS), o incluso con que en KDE 4 no se puede ni tan siquiera acceder a ellos.
Nautilus debería ser capaz de copiarlos a otra partición reemplazando dichos carácteres con "_" automáticamente. Y digo debería porque, al menos en GNOME 2.30, no lo hace.

Por lo tanto, necesitamos una solución si no queremos perder esos ficheros guardados con carácteres españoles (como las vocales acentuadas o la propia "ñ"). Se trata de algo sencillo una vez conoces los pasos a seguir como verás a continuación:
  1. Instalar Nautilus y Thunar en caso de no tenerlos ya.
  2. Abrir Nautilus, seleccionar el directorio o dispositivo en el cual tenemos los archivos conflictivos, y realizar una búsqueda con el texto: "codificación no válida".
  3. Abrir Thunar, seleccionar dos elementos y pulsar la tecla F2 (o bien elegir la opción "Renombrar" del menú contextual) para cargar el renombrador masivo.
  4. En Nautilus, seleccionar todos los ficheros que estén en la ventana desde la que hemos realizado la búsqueda, y arrastrarlos hasta el área en blanco de la ventana del renombrador masivo de Thunar.
  5. En la misma ventana, justo en el menú de debajo (por defecto, pone "Audio Tags"), elegir la opción "Buscar y reemplazar". En "Buscar" poner "�", y en "Reemplazar con" "_".
  6. Pulsar el botón "Renombrar archivos". Una vez terminado el proceso, ya es posible copiar cualquier elemento de los que antes daban problemas y acceder a ellos desde KDE 4.
Nota: Las comillas no hay que ponerlas.

5 comentarios:

  1. Para algo parecido usé:
    convmv
    que, por cierto, no sustituye "�" por "_" sino por lo correspondiente.


    man convmv:
    convmv - converts filenames from one encoding to another

    ResponderEliminar
  2. Bien. Gracias por tu aporte.
    Seguro que alguien podrá renombrar archivos sin problemas con él.

    ResponderEliminar
  3. Ejemplo fácil de convertir los nombres de archivos de la codificación "particular" de Windows a UTF-8:
    convmv -f cp1252 -t UTF8 *


    "También tenemos ‘--unescape’ que sustituye las secuencias %hex utilizadas en las URLs. Esto es muy interesante para convertir el nombre de ficheros descargados con wget. Recomiendo la lectura atenta del manual para conocer todas las posibilidades de este programa."

    ResponderEliminar
  4. En mi versión hay que añadirle --notest para que lo haga realmente (de otro modo sólo hace un test y sólo muestra en pantalla como sería el cambio, lo que no está de hacerlo la primera vez):

    En resumen:

    $ convmv -f cp1252 -t UTF8 *
    $ convmv -f cp1252 -t UTF8 * --notest

    ResponderEliminar
  5. En mi caso, en un Ubuntu Maverick, no me funcionó el convmv.

    Sustituye el � pero por algún caractér que no corresponde al correcto. No se si será que los archivos originales fueron comprimidos en otro sistema que no fuera Windows, un Mac por ejemplo.

    ResponderEliminar

Tu comentario será publicado tan pronto como sea supervisado y aprobado.
No están permitidas las faltas de respeto ni la información sensible (como direcciones de correo o números de teléfono). Estos comentarios serán eliminados.

LinkWithin

Related Posts Plugin for WordPress, Blogger...