Інструменти Linux для пошуку дублікатів файлів?


13

У мене великий і зростаючий набір текстових файлів, які всі досить малі (менше 100 байт). Я хочу розрізнити кожну можливу пару файлів і зазначити, що є дублікатами. Я можу написати сценарій Python для цього, але мені цікаво, чи існує існуючий інструмент командного рядка Linux (або, можливо, проста комбінація інструментів), який би це зробив?

Оновлення (у відповідь на коментар mfinni ): Усі файли знаходяться в одному каталозі, тому всі вони мають різні назви файлів. (Але всі вони мають спільне розширення назви файлів, що дозволяє легко вибрати їх за допомогою підстановки.)


Я припускаю, що назви файлів не є дублікатами, а лише вмістом?
mfinni

pixelbeat.org/fslint, якщо ви шукаєте вміст вище посилання, може допомогти вам це зробити. :)
Раджат

Відповіді:


22

Там є фдупи . Але я зазвичай використовую комбінаціюfind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
Ця варіація спрацювала для мене: find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 (я використовував uniq -D, і я віддаю перевагу xargs, щоб знайти -exec.)
Daryl Spitzer

+1 Я не знав про fdupes, цей інструмент виглядає дуже корисним.
Зоредаче

3
@Daryl: Використовуючи xargsподібне, це не працює для назви файлів з пробілами, використовуючи, -execоднак, це робить. Використання -type fв якості додаткового аргументу до find(можна використовувати разом з -name) обмежує пошук файлів.
fuenfundachtzig

+1 для fdupes, оскільки це швидко і для величезних бінарних файлів.
Бенгт

У деяких рідкісних випадках у мене xargs не працював (вийшов з ладу після певної кількості оброблених файлів), але не знаходив -exec, який весь час прокидався. @fuenfundachtzig, ви можете використовувати xargs -0 --delimiter = "\ n" для обробки таких файлів.
ychaouche


3

Ви майже напевно не хочете відрізняти кожну пару файлів. Ймовірно, ви хочете використовувати щось на зразок md5sums, щоб отримати всі контрольні суми всіх файлів і передавати їх у якийсь інший інструмент, який повідомляє лише про повторювані контрольні суми.


2
Ви можете зменшити кількість md5sums, обчислену, лише обчисливши md5sums для файлів розміру, для яких існує більше одного файлу такого розміру. Тому для всіх файлів, що мають унікальний розмір у байтах, вам не потрібен md5sum, оскільки вони не можуть бути дублікатами нічого.
tomsv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.