È un requisito comune trovare e sostituire i file duplicati per la maggior parte degli utenti di computer. Trovare e rimuovere i file duplicati è un lavoro noioso che richiede tempo e pazienza. Trovare file duplicati può essere molto facile se la tua macchina è alimentata da GNU/Linux, grazie a "fdupes ' utilità.
Cos'è fdupes?
Fdupe è un'utilità Linux scritta da Adrian Lopez in C Linguaggio di programmazione rilasciato sotto licenza MIT. L'applicazione è in grado di trovare file duplicati nel set di directory e sottodirectory specificato. Fdupes riconosce i duplicati confrontando la firma MD5 dei file seguita da un confronto da byte a byte. Molte opzioni possono essere passate con Fdupes per elencare, eliminare e sostituire i file con hardlink ai duplicati.
Il confronto inizia nell'ordine:
Confronto dimensioni> Confronto parziale delle firme MD5> Confronto completo delle firme MD5> Confronto da byte a byte .
Installa fdupes su Linux
Installazione dell'ultima versione di fdupes (fdupes versione 1.51) facile come eseguire il comando seguente su Debian sistemi basati come Ubuntu e Linux Mint .
$ sudo apt-get install fdupes
Su CentOS /RHEL e Fedora sistemi basati, è necessario attivare il repository epel per installare il pacchetto fdupes.
# yum install fdupes # dnf install fdupes [On Fedora 22 onwards]
Nota :Il gestore di pacchetti predefinito yum è sostituito da dnf da Fedora 22 in poi...
Come si usa il comando fdupes?
1. A scopo dimostrativo, creiamo alcuni file duplicati in una directory (ad esempio tecmint ) semplicemente come:
$ mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done
Dopo aver eseguito il comando precedente, verifichiamo che i file duplicati siano stati creati o meno utilizzando il comando ls.
$ ls -l total 60 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint10.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint11.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint12.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint13.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint14.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint15.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint1.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint2.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint3.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint4.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint5.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint6.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint7.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint8.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
Lo script sopra crea 15 i file vale a dire tecmint1.txt, tecmint2.txt...tecmint15.txt e tutti i file contengono gli stessi dati, ad es.
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. Ora cerca i file duplicati all'interno della cartella tecmint .
$ fdupes /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
3. Cerca i duplicati in modo ricorsivo in ogni directory comprese le sue sottodirectory utilizzando -r opzione.
Cerca in tutti i file e le cartelle in modo ricorsivo, a seconda del numero di file e cartelle, ci vorrà del tempo per scansionare i duplicati. Nel frattempo, ti verrà presentato il progresso totale nel terminale, qualcosa del genere.
$ fdupes -r /home Progress [37780/54747] 69%
4. Visualizza la dimensione dei duplicati trovati all'interno di una cartella utilizzando -S opzione.
$ fdupes -S /home/$USER/Desktop/tecmint 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
5. Puoi vedere la dimensione dei file duplicati per ogni directory e sottodirectory incontrata utilizzando il -S e -r opzioni contemporaneamente, come:
$ fdupes -Sr /home/avi/Desktop/ 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt 107 bytes each: /home/tecmint/Desktop/resume_files/r-csc.html /home/tecmint/Desktop/resume_files/fc.html
6. Oltre a cercare in una cartella o in tutte le cartelle in modo ricorsivo, puoi scegliere di scegliere in due cartelle o tre cartelle come richiesto. Per non parlare della possibilità di utilizzare l'opzione -S e/o -r se richiesto.
$ fdupes /home/avi/Desktop/ /home/avi/Templates/
7. Per eliminare i file duplicati conservandone una copia, puoi utilizzare l'opzione '-d' . È necessario prestare particolare attenzione durante l'utilizzo di questa opzione, altrimenti potresti perdere file/dati necessari e tenere presente che il processo è irrecuperabile.
$ fdupes -d /home/$USER/Desktop/tecmint [1] /home/tecmint/Desktop/tecmint/tecmint13.txt [2] /home/tecmint/Desktop/tecmint/tecmint8.txt [3] /home/tecmint/Desktop/tecmint/tecmint11.txt [4] /home/tecmint/Desktop/tecmint/tecmint3.txt [5] /home/tecmint/Desktop/tecmint/tecmint4.txt [6] /home/tecmint/Desktop/tecmint/tecmint6.txt [7] /home/tecmint/Desktop/tecmint/tecmint7.txt [8] /home/tecmint/Desktop/tecmint/tecmint9.txt [9] /home/tecmint/Desktop/tecmint/tecmint10.txt [10] /home/tecmint/Desktop/tecmint/tecmint2.txt [11] /home/tecmint/Desktop/tecmint/tecmint5.txt [12] /home/tecmint/Desktop/tecmint/tecmint14.txt [13] /home/tecmint/Desktop/tecmint/tecmint1.txt [14] /home/tecmint/Desktop/tecmint/tecmint15.txt [15] /home/tecmint/Desktop/tecmint/tecmint12.txt Set 1 of 1, preserve files [1 - 15, all]:
Potresti notare che tutti i duplicati sono elencati e ti viene chiesto di eliminarli, uno per uno o un determinato intervallo o tutto in una volta. Puoi selezionare un intervallo simile di seguito per eliminare i file di un intervallo specifico.
Set 1 of 1, preserve files [1 - 15, all]: 2-15 [-] /home/tecmint/Desktop/tecmint/tecmint13.txt [+] /home/tecmint/Desktop/tecmint/tecmint8.txt [-] /home/tecmint/Desktop/tecmint/tecmint11.txt [-] /home/tecmint/Desktop/tecmint/tecmint3.txt [-] /home/tecmint/Desktop/tecmint/tecmint4.txt [-] /home/tecmint/Desktop/tecmint/tecmint6.txt [-] /home/tecmint/Desktop/tecmint/tecmint7.txt [-] /home/tecmint/Desktop/tecmint/tecmint9.txt [-] /home/tecmint/Desktop/tecmint/tecmint10.txt [-] /home/tecmint/Desktop/tecmint/tecmint2.txt [-] /home/tecmint/Desktop/tecmint/tecmint5.txt [-] /home/tecmint/Desktop/tecmint/tecmint14.txt [-] /home/tecmint/Desktop/tecmint/tecmint1.txt [-] /home/tecmint/Desktop/tecmint/tecmint15.txt [-] /home/tecmint/Desktop/tecmint/tecmint12.txt
8. Dal punto di vista della sicurezza, potresti voler stampare l'output di 'fdupes' archiviare e quindi controllare il file di testo per decidere quale file eliminare. Ciò riduce le possibilità di eliminare accidentalmente il file. Puoi fare:
$ fdupes -Sr /home > /home/fdupes.txt
Nota :puoi sostituire '/home' con la cartella desiderata. Utilizza anche l'opzione '-r' e '-S' se vuoi cercare ricorsivamente e Dimensioni di stampa, rispettivamente.
9. Puoi omettere il primo file da ogni serie di corrispondenze utilizzando l'opzione '-f' .
Primo Elenca i file della directory.
$ ls -l /home/$USER/Desktop/tecmint total 20 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (3rd copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (4th copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (another copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
e quindi ometti il primo file da ogni serie di corrispondenze.
$ fdupes -f /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint9 (copy).txt /home/tecmint/Desktop/tecmint9 (3rd copy).txt /home/tecmint/Desktop/tecmint9 (another copy).txt /home/tecmint/Desktop/tecmint9 (4th copy).txt
10. Controlla la versione installata di fdupes.
$ fdupes --version fdupes 1.51
11. Se hai bisogno di aiuto su fdupes puoi usare lo switch '-h' .
$ fdupes -h Usage: fdupes [options] DIRECTORY... -r --recurse for every directory given follow subdirectories encountered within -R --recurse: for each directory given after this option follow subdirectories encountered within (note the ':' at the end of the option, manpage for more details) -s --symlinks follow symlinks -H --hardlinks normally, when two or more files point to the same disk area they are treated as non-duplicates; this option will change this behavior -n --noempty exclude zero-length files from consideration -A --nohidden exclude hidden files from consideration -f --omitfirst omit the first file in each set of matches -1 --sameline list each set of matches on a single line -S --size show size of duplicate files -m --summarize summarize dupe information -q --quiet hide progress indicator -d --delete prompt user for files to preserve and delete all others; important: under particular circumstances, data may be lost when using this option together with -s or --symlinks, or when specifying a particular directory more than once; refer to the fdupes documentation for additional information -N --noprompt together with --delete, preserve the first file in each set of duplicates and delete the rest without prompting the user -v --version display fdupes version -h --help display this help message
Questo è per tutto ora. Fammi sapere come stavi trovando ed eliminando i file duplicati fino ad ora in Linux? e dimmi anche la tua opinione su questa utility. Inserisci il tuo prezioso feedback nella sezione commenti qui sotto e non dimenticare di mettere mi piace/condividerci e aiutarci a diffonderci.
Sto lavorando su un'altra utility chiamata fslint per rimuovere i file duplicati, pubblicherò presto e voi persone adorerete leggere.