Strumenti Linux per trovare file duplicati?


13

Ho un set ampio e crescente di file di testo, che sono tutti abbastanza piccoli (meno di 100 byte). Voglio diffondere ogni possibile coppia di file e notare che sono duplicati. Potrei scrivere uno script Python per fare questo, ma mi chiedo se esiste uno strumento da riga di comando Linux (o forse una semplice combinazione di strumenti) che lo farebbe?

Aggiornamento (in risposta al commento di mfinni ): i file sono tutti in una singola directory, quindi hanno tutti nomi di file diversi. (Ma hanno tutti un'estensione di file in comune, che semplifica la selezione di tutti con un carattere jolly.)


Suppongo che i nomi dei file non siano duplicati, ma solo i contenuti?
mfinni,

pixelbeat.org/fslint se stai cercando contenuti sopra il link può aiutarti a farlo. :)
Rajat,

Risposte:


22

Ecco i fdupes . Ma di solito uso una combinazione difind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
Questa variazione ha funzionato per me: find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 (ho usato uniq -D e preferisco xargs per trovare -exec.)
Daryl Spitzer

+1 Non ero a conoscenza di fdupes, quello strumento sembra molto utile.
Zoredache,

3
@Daryl: l'utilizzo in xargsquesto modo non funziona per i nomi di file con spazi vuoti, -exectuttavia l' utilizzo funziona. L'uso -type fcome argomento aggiuntivo di find(può essere utilizzato insieme a -name) limita la ricerca ai file.
Fuenfundachtzig,

+1 per fdupes, poiché è veloce anche per enormi file binari.
Bengt,

In alcune rare occasioni ho avuto xargs non funzionanti (crash dopo una certa quantità di file elaborati) ma non ho trovato -exec che ha svegliato tutto il tempo. @fuenfundachtzig, è possibile utilizzare xargs -0 --delimiter = "\ n" per gestire questo tipo di file.
ychaouche,


3

Quasi sicuramente non si desidera diff ogni coppia di file. Probabilmente vorrai usare qualcosa come md5sums per ottenere tutti i checksum di tutti i file e reindirizzarli in qualche altro strumento che riporterà solo checksum duplicati.


2
È possibile ridurre il numero di md5sums calcolati calcolando solo md5sums per file di una dimensione, per i quali esiste più di un file di quella dimensione. Quindi per tutti i file che hanno una dimensione univoca in byte, non è necessario un md5sum, poiché non possono essere duplicati di nulla.
Tomsv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.