Как найти и удалить файлы-дубликаты в Linux

Как найти и удалить файлы-дубликаты в Linux

Домашняя папка (а порой и весь сервер) быстро захламляется, если вы часто скачиваете файлы и разбрасываете их по разным каталогам. Через какое-то время обнаруживается, что одни и те же документы лежат в нескольких местах — и найти всё это руками уже нереально. 

Ниже понятный обзор инструментов, которые помогут навести порядок

1. Rdfind — поиск дубликатов по содержимому

rdfind (redundant data find) — бесплатная консольная утилита, которая рекурсивно сканирует каталоги и находит файлы с идентичным содержимым. Она умеет определять «оригинал» и помечать остальные экземпляры как дубликаты. Логика ранжирования простая и предсказуемая: выше тот файл, что встретился раньше при сканировании входных путей, расположен на меньшей глубине и/или найден раньше среди файлов в одном каталоге.

Установка

sudo apt install rdfind          # Debian/Ubuntu/Mint

sudo yum install rdfind          # RHEL/CentOS/Fedora/Rocky/AlmaLinux

sudo emerge -a sys-apps/rdfind   # Gentoo

sudo apk add rdfind              # Alpine

sudo pacman -S rdfind            # Arch

sudo zypper install rdfind       # openSUSE

Быстрый старт

rdfind /home/user

Результаты сохраняются в results.txt (в текущем каталоге). 

Удалить дубликаты:

rdfind -deleteduplicates true /home/user

2. Fdupes — классический сканер дубликатов

fdupes тоже работает из терминала и сравнивает файлы рекурсивно, проверяя размер и содержимое. 

Установка

sudo apt install fdupes          # Debian/Ubuntu/Mint

sudo yum install fdupes          # RHEL/CentOS/Fedora/Rocky/AlmaLinux

sudo emerge -a sys-apps/fdupes   # Gentoo

sudo apk add fdupes              # Alpine

sudo pacman -S fdupes            # Arch

sudo zypper install fdupes       # openSUSE

Примеры команд

fdupes <dir>           # скан каталога

fdupes -r <dir>        # рекурсивно

fdupes <dir1> -r <dir2># несколько путей, у второго — рекурсия

fdupes -S <dir>        # показать суммарный размер дублей

fdupes -m <dir>        # краткая сводка

Интерактивное удаление:

fdupes -d <dir>

Утилита покажет группы одинаковых файлов и спросит, какие из них удалить — нужно ввести номера. Режим -dN удаляет всё, оставляя первый попавшийся файл, но так делать безопасно только при полной уверенности:

fdupes -dN <dir>

3. Jdupes — быстрый форк fdupes

jdupes — современный и заметно более быстрый форк fdupes, активно поддерживается и лучше подходит для больших каталогов. Он сравнивает содержимое файлов, но использует оптимизированные алгоритмы и даёт больше управляемости.

Установка

sudo apt install jdupes   # Debian/Ubuntu/Mint

sudo yum install jdupes   # RHEL/CentOS/Fedora/Rocky/AlmaLinux

sudo pacman -S jdupes     # Arch

sudo zypper install jdupes# openSUSE

Примеры команд:

jdupes <dir>     # скан

jdupes -r <dir>  # рекурсия

jdupes -d <dir>  # интерактивное удаление

jdupes -s <dir>  # заменить симлинками

 

Итого

Все перечисленные инструменты хорошо справляются с поиском дублей, но подход к удалению должен быть взвешенным. Если не уверены, нужен ли файл, сделайте резервную копию и запомните путь — так проще откатить изменения.