Alat Linux untuk menemukan file duplikat?


13

Saya memiliki satu set file teks yang besar dan terus bertambah, yang semuanya cukup kecil (kurang dari 100 byte). Saya ingin membedakan setiap pasangan file dan mencatat yang merupakan duplikat. Saya bisa menulis skrip Python untuk melakukan ini, tapi saya bertanya-tanya apakah ada alat baris perintah Linux yang ada (atau mungkin kombinasi alat sederhana) yang akan melakukan ini?

Pembaruan (sebagai tanggapan terhadap komentar mfinni ): File-file tersebut semuanya dalam satu direktori, sehingga mereka semua memiliki nama file yang berbeda. (Tapi mereka semua memiliki ekstensi nama file yang sama, sehingga memudahkan untuk memilih semuanya dengan wildcard.)


Saya berasumsi bahwa nama file bukan duplikat, hanya isinya?
mfinni

pixelbeat.org/fslint jika Anda mencari konten tautan di atas dapat membantu Anda melakukannya. :)
Rajat

Jawaban:


22

Ada fdupes . Tapi saya biasanya menggunakan kombinasifind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
Variasi ini berhasil untuk saya: find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 (Saya menggunakan uniq -D, dan saya lebih suka xargs untuk menemukan -exec.)
Daryl Spitzer

+1 Saya tidak mengetahui fdupes, alat itu terlihat sangat berguna.
Zoredache

3
@Daryl: Menggunakan xargsseperti ini tidak berfungsi untuk nama file dengan kosong, -execnamun menggunakan tidak. Menggunakan -type fsebagai argumen tambahan untuk find(dapat digunakan bersama dengan -name) membatasi pencarian ke file.
fuenfundachtzig

+1 untuk fdupes, karena cepat untuk file biner yang besar, juga.
Bengt

Pada beberapa kesempatan yang jarang, saya memiliki xargs yang tidak berfungsi (macet setelah sejumlah file yang diproses) tetapi tidak menemukan -exec yang terbangun sepanjang waktu. @fuenfundachtzig, orang dapat menggunakan xargs -0 --delimiter = "\ n" untuk menangani file jenis ini.
ychaouche


3

Anda hampir pasti tidak ingin membedakan setiap pasangan file. Anda mungkin ingin menggunakan sesuatu seperti md5sums untuk mendapatkan semua checksum dari semua file dan pipa itu ke beberapa alat lain yang hanya akan melaporkan kembali checksum duplikat.


2
Anda bisa mengurangi jumlah md5sums yang dihitung dengan hanya menghitung md5sums untuk file yang berukuran, yang mana ada lebih dari satu file dengan ukuran itu. Jadi untuk semua file dengan ukuran unik dalam byte, Anda tidak perlu md5sum, karena mereka tidak dapat duplikat apa pun.
tomsv
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.