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.)
Jawaban:
Ada fdupes . Tapi saya biasanya menggunakan kombinasi
find . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36
sumber
find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34
(Saya menggunakan uniq -D, dan saya lebih suka xargs untuk menemukan -exec.)xargs
seperti ini tidak berfungsi untuk nama file dengan kosong,-exec
namun menggunakan tidak. Menggunakan-type f
sebagai argumen tambahan untukfind
(dapat digunakan bersama dengan-name
) membatasi pencarian ke file.Yah ada FSlint - yang belum pernah saya gunakan untuk kasus ini, tapi saya harus bisa mengatasinya: http://en.flossmanuals.net/FSlint/Introduction
sumber
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.
sumber