In questa guida vederemo come cercare e rimuovere facilmente immagini duplicate in Linux presenti sul nostro pc, hard disk esterni ecc con o senza utilizzare software dedicati.

Ubuntu: come cercare e rimuovere facilmente immagini duplicate
Ubuntu, come gran parte delle principali distribuzioni Linux, viene rilasciata con diverse applicazioni dedicata alla gestione e catalogazione delle immagini digitali. Ad esempio possiamo visualizzare le nostre immagini con Eye Of Gnome oppure catalogarle, condividerle e modificarle con Shotwell, nei repository ufficiali troviamo anche altre utili applicazioni come Gimp, Pinta ecc. Una funzionalità molto richiesta dagli utenti e non inclusa nelle principali applicazioni dedicate alla gestione e riproduzione delle immagini digitali in Linux riguardante la ricerca e rimozione delle immagini duplicate. Difatti può capitare di trovare le stesse immagini salvate ad esempio in cartelle diverse oppure ad esempio sul pc che in hard disk esterni ecc. Ecco come poter “scovare” facilmente le immagini duplicati presenti sul nostro pc, pendrive, hard disk esterni ecc cosi da poterle rimuovere facilmente.

Trovare le immagini duplicate in Linux è molto semplice, possiamo effettuare questa operazione direttamente da terminale verificando md5sum di un ogni file e creare un documento di testo che indichi solo i file duplicati e la loro posizione.
Per far tutto questo vasta digitare da terminale:

find /home/lffl/  -type f -exec md5sum '{}' ';' | sort | uniq --all-repeated=separate -w 15 > duplicati.txt

Dove al posto di /home/lffl/ dovremo indicare il percorso della directory da esaminare, esempio se vogliamo effettuare il controllo della cartella Immagini nel mio caso dovrò inserire /home/lffl/Immagini ecc.

Il comando crea automaticamente un file denominato duplicati nella nostra home nella quale troveremo l’elenco delle immagini duplicate e il loro percorso cosi da poterle rimuovere.

cercare immagini duplicate da terminale Linux

Per chi non ama operare da riga di comando possiamo utilizzare l’applicazione FSlint, utile software incluso nei repository ufficiali delle principali distribuzioni Linux, che ci consente di rimuovere facilmente file duplicati come ad esempio immagini digitali presenti sul nostro pc, hard disk esterni, pendrive ecc oltre a rimuovere file temporanei, pacchetti obsoleti ecc.

Per installare FSlint in Ubuntu, Debian e derivate basta digitare da terminale:

sudo apt-get install fslint

Al termine dell’installazione basta avviare FSLint da menu / dash e su Aggiungi inserire le directory da analizzare, successivamente basta cliccare su Ricerca per avviare la scansione.

FSlint - rimuovere immagini duplicate in Ubuntu Linux

Al termine della scansione / ricerca avremo l’elenco dei file duplicati basta selezionarli e cliccare su Elimina per poterli rimuovere.

Per Linux esistono altri comandi da terminale, script e tool per effettuare la ricerca ed eliminazione di file duplicati, questi due a mio avviso sono i più semplici da utilizzare anche da parte di utenti inesperti.

  • sarebbe meglio usare sha256 al posto di md5, perchè è stato verificato che md5 può generare per 2 file diversi la stessa chiave, infatti non è più usato nemmeno come algoritmo di cifratura per le password di accesso nei dei vari siti ed è stato sostituito con sha256 (o 512), perchè altrimenti metti che la mia password era “casa” e come md5 aveva “123” (è solo un esempio md5 genera molti più caratteri) e uno provava ad entrare nel mio account mettendo come password “albero” che anch’esso genera un md5 “123” entrava ugualmente anche se la passwword era sbagliata

    certo la probabilità che 2 file generino lo stesso md5 è bassissima ma è sempre meglio andare sul sicuro 😀

    EDIT: comunque complimenti per l’articolo roberto effettivamente è molto utile come cosa, non so quante foto ho nel PC duplicate in cartelle diverse.

    magari un giorno userò questo metodo

    • Anarco Bsd Tux

      concordo pienamente con quello che hai detto… la cosa che hai spiegato si chiama “collisione”, infatti tutti gli algoritmi precedenti ad MD5 (ad esempio MD4) sono stati scartati con il passare degli anni proprio perchè si è scoperto che generavano collisioni!!! personalmente, anni fa, mi dedicavo alla sicurezza informatica, e questa cosa (con MD5) mi è capitata proprio con le password criptate nei dump di mysql (ad esempio le password di phpbb, wordpress, smf, ecc…)!!! già utilizzando SHA1 o SHA2, hai un rischio minore di generare collisioni, se poi usi SHA256 o SHA512, meglio ancora!!! 😉 comunque cambierei il nome dell’articolo, quella riga di codice trova tutti i file duplicati, non solo le immagini!!! personalmente, racchiuderò quella riga di codice in uno script!!! 😀 preferisco la riga di comando e non la gui!!! bell’articolo, grande roberto!!! 🙂

    • Anarco Bsd Tux

      ah c’è anche fdupes, sempre a riga di comando, che fa la stessa cosa!!! ecco l’articolo di tuxjournal: http://www.tuxjournal.net/fdupes-alla-disperata-ricerca-dei-file-duplicati/

    • asd

      la collisione con un dato hash ha prob 1/2^128, piu’ facile che ti caschi una meteora sul server. Solo se hai svariati trilioni di files inizi ad avere problemi di collisioni md5. Quello qui sotto parla di mysql ma mi pare che non usasse md5 per gli hash.

      Md5 non si usa per le password perche’ e’ troppo veloce da generare. Anche sha1 e altri non vanno bene. Ci sono hash appositi, bcrypt se non ricordo male. E’ anche insicuro nel senso che si possono Costruire collisioni, ma non e’ il caso delle password.

      Comunque l’idea di hashare i files per vedere duplicati e’ molto dispendiosa. Penso che fslint prima veda la dimensione, poi eventualmente passi a hashare. Molto piu’ veloce.
      Se vi serve fare backup deduplicati provate attic.

      • Anarco Bsd Tux

        non è mysql ad hashare le password, ma i creatori dei CMS!!! ti ho elencato infatti alcuni dei cms che usano/usavano MD5 come algoritmo per criptare le password in mysql!!! so per certo che utilizzavano tale algoritmo i cms: wordpress, phpbb, vbulletin, smf (forse sha1, non sono convintissimo…), phpnuke, joomla (ex mambo cms) e tantissimi altri!!! lo so per certo, anche perchè creavo exploit, di cui molti sfruttavano falle di tipo SQL Injection, e prelevavano le password degli amministratori dal DB, tutte rigorosamente in MD5… creavo gli archivi online degli hash MD5 crackati, e le rainbow tables… di collisioni me ne sono capitate parecchie (almeno una ventina)… però come dici tu, me ne sono accorto proprio perchè avevo a che fare con milioni e milioni di hash… se no mica me ne accorgevo!!! 😉

  • Gianmarco

    ancora più semplice

    find /home/gianmarco/ -type f -name *.gif -o -name *.jpg -o -name *.bmp | sort -n | uniq -c | sort -n | more

    • asd

      E se due immagini con lo stesso nome fossero diverse? devi perlomeno listare anche la dimensione in bytes, esercizio per casa.

      • Gianmarco

        find /home/gianmarco/pippo/ -type f -name *.jpg -exec du {} ; | sort -n | uniq -c

        Ho tolto un pò di robe per snellire

      • biosniper

        semplice, reinstalli di nuovo tutto il sistema operativo e ti passa la paura
        😀
        quando vuoi eliminare gli scarafaggi da casa che fai? semplice, abbatti la casa! la casa non ce l’hai più (piccolo dettaglio), ma gli scarafaggi li hai eliminati!
        :-scusami…, sono un pò spiritoso stasera!
        😀

      • Gianmarco

        questa è la stringa perfetta!

        for i in $(find /home/gianmarco/pippo/ -type f -name *.jpg); do echo $(cat $i | md5sum) $i; done | uniq -c -w 32 | sort

        1 d41d8cd98f00b204e9800998ecf8427e – /home/gianmarco/pippo/img3.jpg
        1 f583ca884c1d93458fb61ed137ff44f6 – /home/gianmarco/pippo/img2.jpg
        3 a7152780b03c0c5dbbdbc95905df8cc7 – /home/gianmarco/pippo/pippo2/img3.jpg

  • Eugenio

    Bene. Ma sarebbe ancora più utile se supportasse l’anteprima dei file duplicati e quindi l’eliminazione selettiva. Non tutti i file duplicati devono sempre essere rimossi, dipende.

  • Alessandro

    fdupes -rd e passa la paura…

  • XfceEvangelist

    Vi prego la prox volta se dovete create un file di testo, almeno per la gloria di GNU/Linux, evitare di mettere l’estensione .txt 🙂 (mi riferisco al “duplicati.txt”)

    • maniuz

      perchè? cos’ha di male il formato txt?

      • XfceEvangelist

        Nulla, ma in linux le estensioni non servono, in Redmond OS invece si.

No more articles