viernes, 2 de octubre de 2015

Detectar archivos duplicados en el disco duro

Ayer, como todos los jueves, visité el ya legendario Blog 'un Bruto con Debian' del (cibernético) amigo Carlos Aranda y, como siempre, aprendí cosas nuevas. Carlos (su Blog) fue uno de los que más me ayudaron en mi 'destete' en Debian, ya lo decía en la Presentación de éste.
Esta vez hablaba de una aplicación que se llama 'fslint' que, aunque lleva ya unos años en los repositorios, no la conocía.
Con FSlint (y sus potentes algoritmos) conocer los archivos duplicados que tengas en tu disco duro es sencillísimo. Y lo haces desde un sencillo entorno gráfico... y en español. Así que, como este Blog (lo he dicho muchas veces) es mi propio recopilatorio de apuntes de interés, 'digiero' el original y me dispongo a explicarlo 'a mi manera', que yo soy más 'Bruto' que nadie.
Lo primero que hay que hacer, por tanto, es instalar la aplicación. Sencillo:
sudo aptitude install fslint
y te aparece, normalmente, en Menu-Administración-FSlint Janitor. Por cierto, es una aplicación muy ligera, creo que, en el fondo, se deriva del comando 'fdupes', así que se instala muy rápida y sencillamente.

Cuando la activas, te aparece esto:
donde, por defecto, ya viene marcado que busque los archivos duplicados, de forma recursiva (es decir, incluyendo los subdirectorios), en la ruta de tu /home.
Esto último lo puedes cambiar, simplemente (arriba, a la izquierda) con 'Añadir' (la ruta que te interese, por ejemplo, puedes concentrarte en buscar los duplicados de la carpeta …/Musica, o …/Fotos, o …/documentos personales, etc) y, seleccionándolo, con 'Quitar' las rutas que no te interesen. Esto es bueno, porque, como la aplicación tiene que revisar, bajo sus algoritmos, todos los archivos, puede tardar un poco, y así (seleccionando una ruta específica) se reduciría el tiempo. 
Y nada, solo queda pinchar en 'Buscar'... y esperar que te aparezcan los archivos duplicados, y en qué ruta está cada uno de ellos.

A partir de ahí puedes hacer dos cosas
a) seleccionar un archivo duplicado y, directamente... 'Borrar'
b) pero como esto puede ser un lío (¿que ruta eliges borrar...?), yo soy más partidario de hacer otra cosa: 'Guardar'. Entonces se te crea un archivo de texto, que llamas y guardas como y donde quieras, que contiene la relación de archivos duplicados.
Pero una recomendación: una vez guardado, ábrelo con tu editor de textos (por ejemplo con el Libreoffice-Writer) y haz dos cosas: 
- una, cambiar el tamaño de letra a otra más pequeña (por ejemplo, a Droid Sans de 8 px) 
- y otra, en Formato-Página, elige orientación Horizontal (Apaisado), e incluso reduce al mínimo los márgenes derecho e izquierdo. 
¿Razón...? pues porque es más práctico, a veces las rutas son largas, y así te aparecerá cada una en una línea, y lo verás todo mucho más claro.

Pero hay una opción más, que es lo de 'Fusionar' (Merge). ¿Y qué es ésto? Pues es un concepto avanzado, con la opción de 'fusión' la aplicación mantiene los nombres de todos los archivos duplicados en sus rutas... pero realmente solo hay uno, y el resto está como 'enlace duro'... con lo cual te ahorras el espacio que ocupan. Luego lo trato de explicar un poco más.

Como ves, la aplicación es muy potente. Para el que quiera profundizar en ella, hay un Manual muy claro (pero está en inglés) en su web. Aquí: http://en.flossmanuals.net/FSlint/ 

Una cuestión interesante: al crear un archivo con la relación de archivos duplicados (o triplicados, cuadruplicados...), y hacer lo que dije de configurarlo con LibreOffice-Writer, te aparece una cosa así...
donde hay que hacer notar dos cosas:
a) que las cifras que aparecen con una almohadilla (#) significan el número de archivos duplicados y su tamaño (en bytes, y sus nombres aparecen en las siguientes líneas) y, entre paréntesis, los bytes perdidos, aunque estaría mejor decir 'bytes desperdiciados' porque es eso: tamaño del archivo x (nº de veces repetido -1) 
b) Que, y esto es estupendo, te crea una lista ordenada de mayor a menor 'desperdicio de espacio', por lo que te facilita mucho el análisis. Con lo cual... perfecto.

La aplicación no queda ahí, hay otras cosas que se pueden buscar, como los archivos temporales (que, en principio, se pueden borrar), los archivos con nombre incorrecto (podrían dar problema al tratar de abrirlos), los directorios vacíos, etc, etc. El que tenga interés, que lo lea en el Manual que enlazaba antes.

Pero hay que decir una cosa: que lo malo de todas estas aplicaciones es que hay que tomar la decisión de qué archivo duplicado (y en qué ruta) borrar. Y es un 'pequeño gran problema' particularmente para los que nos gusta guardar todo en sucesivas subcarpetas, con un criterio algo vago de cómo estructurarlas, porque no está claro dónde borrarlo y dónde dejarlo, de ahí que recomendaba antes 'Guardar' la lista de archivos duplicados... para hacerlo con calma, y no sobre la marcha, con la opción directa de 'Borrar'.
 
Y me dejo en el tintero la tercera solución mencionada, la de 'Fusionar', o sea eso de crear 'enlaces duros' (concepto distinto al de 'enlace simbólico', llamado también 'enlace blando', o 'acceso directo') que, leo en Google...
Los enlaces duros lo que hacen es asociar dos o más ficheros compartiendo el mismo inodo. Esto hace que cada enlace duro sea una copia exacta del resto de ficheros asociados, tanto de datos como de permisos, propietario, etc. E implica también que cuando se realicen cambios en uno de los enlaces o en el fichero este también se realizará en el resto de enlaces. 
He hecho una pequeña prueba y, en efecto, de esta forma se mantienen todos los archivos duplicados con su nombre y en sus rutas, pero se cumple el objetivo de disminuir el espacio ocupado del disco duro (solo se consideran los bytes de un solo archivo). 
Pero no me atrevo a hacerlo... 
Primero, porque es continuar manteniendo el lío de conservar los nombres de todos los ficheros duplicados en todas sus rutas, y segundo porque leo también, por ejemplo, que... 
En sistemas GNU/Linux, los enlaces duros, tienen varias limitaciones. Una es que sólo se pueden hacer enlaces duros a archivos, y no a directorios. La segunda limitación es que no pueden expandirse a través de distintos sistemas de archivos. Esto significa que no puede crear un enlace permanente desde /usr/bin/bash hacia /bin/bash si sus directorios / y /usr pertenecen a distintos sistemas de archivos. 
... y mi conocimiento no llega a tanto, y a ver si armo algún lío gordo...

... porque, voy a contar un secreto: he pasado, por primera vez, el FSlint por toda mi /home y el resultado es que he creado un archivo, que llamo 'Duplicados en mi HOME.doc' que, en apaisado, y con letra Droid Sans de 8, como en el ejemplo de arriba, que me ocupa... ¡1149 páginas...! 
Así que tengo que hacérmelo mirar. Menos mal que mi disco duro aguanta todavía un poco...

No hay comentarios:

Publicar un comentario