>_ IzzyLab

Практическое задание

Найди дубликаты по содержимому

сложно

В /root/files лежат файлы, и ровно два из них имеют одинаковое содержимое (хоть и с разными именами). Найди эту пару и запиши их имена (basename), по одному на строку, отсортированные по алфавиту, в /root/answer.txt.

Что потренируешь:
  • контрольные суммы
  • md5sum
  • поиск дубликатов
  • uniq
  • сравнение содержимого

Разбор темы

Одинаковые имена или размеры ещё не значат одинаковое содержимое — сравнивать надо сами данные. Побайтно это дорого, поэтому берут контрольную сумму: у файлов с идентичным содержимым хеши (md5sum) совпадут, у разных — почти наверняка разойдутся. Посчитав суммы всех файлов, ищут повторяющийся хеш (сортировка плюс отбор неуникальных строк по полю хеша) и выводят файлы с ним. Это стандартный приём дедупликации — сравнение по хешу вместо прямого сравнения содержимого.

Что проверяется

  1. дубликаты найдены по содержимому

Как это выглядит