Atopar arquivos repetidos con fdupes.
Fdupes é un programa que nos permite atopalos arquivos duplicados ainda que teñan outro nome, compara se o tamaño dos mesmos é igual e se a súa suma MD5 coincide, nese caso fai un chequeo dos arquivos byte a byte pra saber si se trata do mesmo.
É útil pra aforrar espazo e evitar duplicidades de arquivos no noso sistema.
Instalación en Fedora.
Comando:
yum install fdupes
Uso de fdupes.
Supoñamos que tes un directorio con wallpapers que ocupa uns 4,6 GiB.
Cómo amosaría o seguinte comando:
du -cah
Cómo son uns 3290 arquivos, non vou a amosar tódalas liñas, mais estas serían as últimas liñas que amosa o comando:
1,6M ./wallpaper 138.jpg
508K ./wallpaper 143.jpg
452K ./wallpaper 157.jpg
972K ./wallpaper 175.jpg
268K ./wallpaper 203.jpg
2,8M ./wallpaper 278.jpg
848K ./wallpaper 336.jpg
1,2M ./wallpaper 423.jpg
1,5M ./wallpaper 481.jpg
1,1M ./wallpaper 539.jpg
804K ./wallpaper 742.jpg
4,6G .
4,6G total
O caso é que observando as imaxes, me fixei que nalgunhas das miñas 3290 imáxenes algunhas se repetían incluso ata 3 veces, o cal pode resultar molesto e ocupar espazo de máis.
Vamos usar fdupes coas seguintes opcións:
-1 --sameline
list each set of matches on a single line
-S --size
show size of duplicate files
-d --delete
prompt user for files to preserve, deleting all others (see CAVEATS below)
A opción de “na mesma liña” é un “un” non unha “i”:
fdupes -1Sd .
Tras executar a comprobación dos arquivos, amosa a primeira pregunta de 78:
$ fdupes -1Sd .
[1] ./wallpaper 423.jpg
[2] ./wallpaper 347.jpg
Set 1 of 78, preserve files [1 - 2, all] (1156639 bytes each):
Onde se nos pide seleccionar un número 1 ou 2, pra elexir o arquvio que nos interesa conservar ( o resto se liminan ) ou ben escribindo “all” borraremolos todos.
Como son algo desconfiado vou comprobar se os wallpapers 423 y 347 son o mesmo…
Efectivamente son a mesma imaxen, me interesa conservar a primeira imaxen.
Selecciono “1” e doulle a enter.
A continuación coma resposta a miña selección amosa un “+” pro arquivo 1 e un “-“ pra o arquivo 2 indicando que foi eliminado:
$ fdupes -1Sd .
[1] ./wallpaper 423.jpg
[2] ./wallpaper 347.jpg
Set 1 of 78, preserve files [1 - 2, all] (1156639 bytes each): 1
[+] ./wallpaper 423.jpg
[-] ./wallpaper 347.jpg
[1] ./wallpaper 905.jpg
[2] ./wallpaper 123.jpg
Set 2 of 78, preserve files [1 - 2, all] (301047 bytes each):
Agora toca seguir eliminando as duplicidades nos outros 77 arquivos.
En cuestión duns minutos, eliminei 78 duplicacións e este foi o resultado:
...
284K ./wallpaper 134.jpg
1,6M ./wallpaper 138.jpg
508K ./wallpaper 143.jpg
452K ./wallpaper 157.jpg
972K ./wallpaper 175.jpg
268K ./wallpaper 203.jpg
2,8M ./wallpaper 278.jpg
848K ./wallpaper 336.jpg
1,2M ./wallpaper 423.jpg
1,5M ./wallpaper 481.jpg
1,1M ./wallpaper 539.jpg
804K ./wallpaper 742.jpg
4,5G .
4,5G total
Onde aforrei como 100 MiB, que non está nada mal xa que supón espazo pra 50 ou 120 wallpapers máis. Pasei de 3290 ficheiros, a 3202 ficheiros.