Ricerca nel sito web

5 migliori strumenti per trovare ed eliminare file duplicati in Linux


Organizzare la tua home directory o anche il tuo sistema può essere particolarmente difficile se hai l'abitudine di scaricare ogni tipo di materiale da Internet utilizzando i tuoi download manager.

Spesso potresti scoprire di aver scaricato gli stessi file mp3, pdf ed epub (e tutti i tipi di altre estensioni di file) e di averli copiati in directory diverse. Ciò potrebbe causare l'ingombro delle tue directory con tutti i tipi di cose inutili duplicate.

In questo tutorial imparerai come trovare ed eliminare file duplicati in Linux utilizzando gli strumenti da riga di comando rdfind, fdupes e rmlint , oltre a utilizzare strumenti GUI chiamati DupeGuru e FSlint.

Una nota di cautela: fai sempre attenzione a ciò che elimini sul tuo sistema poiché ciò potrebbe portare a perdite di dati indesiderate. Se stai utilizzando un nuovo strumento, provalo prima in una directory di prova dove l'eliminazione dei file non sarà un problema.

1. Rdfind: trova file duplicati in Linux

Rdfind deriva da ridondant data find, che è uno strumento gratuito da riga di comando utilizzato per trovare file duplicati in o all'interno di più directory. Esegue la scansione ricorsivamente delle directory e identifica i file con contenuto identico, consentendo di intraprendere azioni appropriate come l'eliminazione o lo spostamento dei duplicati.

Rdfind utilizza un algoritmo per classificare i file e rileva quale dei duplicati è il file originale e considera il resto come duplicati.

Le regole della classifica sono:

  • Se durante la scansione di un argomento di input è stata trovata A prima di B, A avrà una classificazione più alta.
  • Se A è stato trovato a una profondità inferiore a B, A viene classificato più in alto.
  • Se A è stata trovata prima di B, A avrà una classificazione più alta.

L'ultima regola viene utilizzata soprattutto quando si trovano due file nella stessa directory.

Installa Rdfind su Linux

Per installare rdfind in Linux, utilizza il seguente comando secondo la tua distribuzione Linux.

sudo apt install rdfind         [On Debian, Ubuntu and Mint]
sudo yum install rdfind         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rdfind  [On Gentoo Linux]
sudo apk add rdfind             [On Alpine Linux]
sudo pacman -S rdfind           [On Arch Linux]
sudo zypper install rdfind      [On OpenSUSE]    

Per eseguire rdfind su una directory digita semplicemente rdfind e la directory di destinazione.

rdfind /home/user

Come puoi vedere, rdfind salverà i risultati in un file chiamato results.txt situato nella stessa directory da cui hai eseguito il programma. Il file contiene tutti i file duplicati trovati da rdfind. Se lo desideri, puoi rivedere il file e rimuovere manualmente i file duplicati.

Un'altra cosa che puoi fare è utilizzare -dryrun un'opzione che fornirà un elenco di duplicati senza intraprendere alcuna azione:

rdfind -dryrun true /home/user

Quando trovi i duplicati, puoi scegliere di sostituirli con collegamenti reali.

rdfind -makehardlinks true /home/user

E se desideri eliminare i duplicati puoi eseguire.

rdfind -deleteduplicates true /home/user

Per verificare altre opzioni utili di rdfind puoi utilizzare il manuale di rdfind.

man rdfind 

2. Fdupes – Cerca file duplicati in Linux

Fdupes è un altro programma da riga di comando che ti consente di identificare i file duplicati sul tuo sistema. Cerca nelle directory in modo ricorsivo, confrontando le dimensioni dei file e il contenuto per identificare i duplicati.

Utilizza i seguenti metodi per determinare i file duplicati:

  • Confronto delle firme md5sum parziali
  • Confronto delle firme md5sum complete
  • verifica del confronto byte per byte

Proprio come rdfind, ha opzioni simili:

  • Cerca ricorsivamente
  • Escludi file vuoti
  • Mostra la dimensione dei file duplicati
  • Elimina immediatamente i duplicati
  • Escludi file con un proprietario diverso

Installa Fdupes su Linux

Per installare fdupes in Linux, utilizza il seguente comando secondo la tua distribuzione Linux.

sudo apt install fdupes         [On Debian, Ubuntu and Mint]
sudo yum install fdupes         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fdupes  [On Gentoo Linux]
sudo apk add fdupes             [On Alpine Linux]
sudo pacman -S fdupes           [On Arch Linux]
sudo zypper install fdupes      [On OpenSUSE]    

La sintassi di Fdupes è simile a rdfind. Basta digitare il comando seguito dalla directory che desideri scansionare.

fdupes <dir>

Per cercare file in modo ricorsivo, dovrai specificare -r un'opzione come questa.

fdupes -r <dir>

Puoi anche specificare più directory e specificare una dir in cui eseguire la ricerca ricorsivamente.

fdupes <dir1> -r <dir2>

Per fare in modo che fdupes calcoli la dimensione dei file duplicati usa l'opzione -S.

fdupes -S <dir>

Per raccogliere informazioni riassuntive sui file trovati usa l'opzione -m.

fdupes -m <dir>

Infine, se vuoi eliminare tutti i duplicati usa -d un'opzione come questa.

fdupes -d <dir>

Fdupes chiederà quale dei file trovati eliminare. Dovrai inserire il numero del file:

Una soluzione decisamente sconsigliata è quella di utilizzare l'opzione -N che comporterà il mantenimento solo del primo file.

fdupes -dN <dir>

Per ottenere un elenco delle opzioni disponibili da utilizzare con fdupes, consulta la pagina della guida eseguendo.

fdupes -help

3. Rmlint – Rimuovi i file duplicati

Rmlint è uno strumento da riga di comando utilizzato per trovare e rimuovere file duplicati e simili a lanugine nei sistemi Linux. Aiuta a identificare file con contenuto identico, nonché varie forme di ridondanza o lanugine, come file vuoti, collegamenti simbolici interrotti e file orfani.

Installa Rmlint su Linux

Per installare Rmlint in Linux, utilizza il seguente comando secondo la tua distribuzione Linux.

sudo apt install rmlint         [On Debian, Ubuntu and Mint]
sudo yum install rmlint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rmlint  [On Gentoo Linux]
sudo apk add rmlint             [On Alpine Linux]
sudo pacman -S rmlint           [On Arch Linux]
sudo zypper install rmlint      [On OpenSUSE]    

4. dupeGuru: trova file duplicati in un sistema Linux

dupeGuru è uno strumento open source e multipiattaforma che può essere utilizzato per trovare file duplicati in un sistema Linux. Lo strumento può scansionare nomi di file o contenuti in una o più cartelle. Ti consente anche di trovare il nome file simile ai file che stai cercando.

dupeGuru è disponibile in diverse versioni per piattaforme Windows, Mac e Linux. Il suo rapido algoritmo di corrispondenza fuzzy ti aiuta a trovare file duplicati in un minuto. È personalizzabile, puoi estrarre esattamente i file duplicati che desideri ed eliminare i file indesiderati dal sistema.

Installa dupeGuru su Linux

Per installare dupeGuru in Linux, utilizza il seguente comando secondo la tua distribuzione Linux.

sudo apt install dupeguru         [On Debian, Ubuntu and Mint]
sudo yum install dupeguru         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/dupeguru  [On Gentoo Linux]
sudo apk add dupeguru             [On Alpine Linux]
sudo pacman -S dupeguru           [On Arch Linux]
sudo zypper install dupeguru      [On OpenSUSE]    

5. FSlint: ricerca di file duplicati per Linux

FSlint è un'utilità gratuita utilizzata per trovare e pulire varie forme di lanugine su un filesystem. Segnala inoltre file duplicati, directory vuote, file temporanei, nomi duplicati/in conflitto (binari), collegamenti simbolici errati e molto altro. Ha sia la modalità da riga di comando che quella GUI.

Tuttavia, è importante notare che, per quanto ne so, a settembre 2022, FSlint è stato aggiornato l'ultima volta nel 2013 e potrebbe non essere mantenuto attivamente o essere compatibile con le distribuzioni Linux più recenti.

Installa FSlint su Linux

Per installare FSlint in Linux, utilizza il seguente comando secondo la tua distribuzione Linux.

sudo apt install fslint         [On Debian, Ubuntu and Mint]
sudo yum install fslint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fslint  [On Gentoo Linux]
sudo apk add fslint             [On Alpine Linux]
sudo pacman -S fslint           [On Arch Linux]
sudo zypper install fslint      [On OpenSUSE]    

Conclusione

Questi sono strumenti molto utili per trovare file duplicati sul tuo sistema Linux, ma dovresti fare molta attenzione quando elimini tali file.

Se non sei sicuro di aver bisogno di un file o meno, sarebbe meglio creare un backup di quel file e ricordare la sua directory prima di eliminarlo. Se hai domande o commenti, inviali nella sezione commenti qui sotto.