Estoy tratando de encontrar una manera de verificar dentro de un directorio dado los archivos duplicados (incluso con diferentes nombres) y reemplazarlos con enlaces simbólicos que apuntan a la primera aparición. Lo he intentado fdupes
pero solo enumera esos duplicados.
Ese es el contexto: estoy personalizando un tema de ícono a mi gusto, y he encontrado que muchos íconos, incluso si tienen diferentes nombres y diferentes ubicaciones dentro de su carpeta principal, y se usan para diferentes propósitos, básicamente son los mismos imagen. Dado que aplicar la misma modificación veinte o treinta veces es redundante cuando solo una es realmente necesaria, quiero mantener solo una imagen y vincular todas las demás.
Como ejemplo, si ejecuto fdupes -r ./
dentro del directorio testdir
, podría devolverme los siguientes resultados:
./file1.png
./file2.png
./subdir1/anotherfile.png
./subdir1/subdir2/yetanotherfile.png
Dado este resultado, me gustaría mantener solo el archivo file1.png
, eliminar todos los demás y reemplazarlos con enlaces simbólicos apuntando a él, manteniendo todos los nombres de archivo originales. Por file2.png
lo tanto , conservará su nombre, pero se convertirá en un enlace en file1.png
lugar de ser un duplicado.
Esos enlaces no deben apuntar a una ruta absoluta, sino que deben ser relativos al testdir
directorio padre ; es decir yetanotherfile.png
, se señalará ../../file1.png
, no a/home/testuser/.icons/testdir/file1.png
Estoy interesado en soluciones que involucran una GUI y CLI. No es obligatorio usarlo. fdupes
Lo he citado porque es una herramienta que conozco, pero estoy abierto a soluciones que también usan otras herramientas.
Estoy bastante seguro de que un script bash para manejar todo esto no debería ser tan difícil de crear, pero no soy lo suficientemente experto como para descubrir cómo escribirlo yo mismo.
v1.51
(Ubuntu 14.04.2 LTS).