Top.Mail.Ru

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

4.5k
Как найти и удалить файлы-дубликаты в 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>  # заменить симлинками

 

Итого

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

Похожее

Все статьи
iptables ubuntu

Iptables: базовый файрвол на Ubuntu без риска потерять доступ

Iptables — стандартный инструмент управления файрволом в Linux, который фильтрует трафик по правилам в цепочках INPUT, OUTPUT и FORWARD. Главная опасность при настройке на удалённом VPS — заблокировать собственный SSH-доступ неправильным порядком правил. Эта статья построена так, чтобы этого не…

nginx reverse proxy

Nginx как reverse proxy: настройка и конфигурация

Reverse proxy на Nginx — это когда Nginx принимает внешние запросы на порту 80 или 443 и перенаправляет их на приложение которое работает на внутреннем порту (3000, 8000, 8080). Снаружи видно только Nginx, само приложение сети не касается. Три строки…