Поиск по сайту:

5 лучших инструментов для поиска и удаления повторяющихся файлов в Linux


Организация домашнего каталога или даже системы может быть особенно сложной, если у вас есть привычка загружать всевозможные материалы из Интернета с помощью менеджеров загрузок.

Часто вы можете обнаружить, что загрузили одни и те же файлы в формате mp3, pdf и epub (и со всеми другими расширениями) и скопировали их в разные каталоги. Это может привести к тому, что ваши каталоги будут загромождены всевозможными бесполезными дубликатами.

В этом руководстве вы узнаете, как находить и удалять повторяющиеся файлы в Linux с помощью инструментов командной строки rdfind, fdupes и rmlint. , а также с помощью инструментов с графическим интерфейсом под названием DupeGuru и FSlint.

Предупреждение: всегда будьте осторожны с тем, что вы удаляете в своей системе, поскольку это может привести к нежелательной потере данных. Если вы используете новый инструмент, сначала попробуйте его в тестовом каталоге, где удаление файлов не будет проблемой.

1. Rdfind – поиск повторяющихся файлов в Linux

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

Rdfind использует алгоритм для классификации файлов и определяет, какой из дубликатов является исходным файлом, а остальные считает дубликатами.

Правила ранжирования таковы:

  • Если A был найден при сканировании входного аргумента раньше, чем B, A имеет более высокий рейтинг.
  • Если A был найден на глубине ниже, чем B, A имеет более высокий рейтинг.
  • Если A был найден раньше, чем B, A имеет более высокий рейтинг.

Последнее правило используется, в частности, когда в одном каталоге находятся два файла.

Установите Rdfind в Linux

Чтобы установить rdfind в Linux, используйте следующую команду в соответствии с вашим дистрибутивом Linux.

sudo apt install rdfind         [On Debian, Ubuntu and Mint]
sudo yum install rdfind         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rdfind  [On Gentoo Linux]
sudo apk add rdfind             [On Alpine Linux]
sudo pacman -S rdfind           [On Arch Linux]
sudo zypper install rdfind      [On OpenSUSE]    

Чтобы запустить rdfind в каталоге, просто введите rdfind и целевой каталог.

rdfind /home/user

Как вы можете видеть, rdfind сохранит результаты в файле с именем results.txt, расположенном в том же каталоге, из которого вы запускали программу. Этот файл содержит все дубликаты файлов, найденные rdfind. Вы можете просмотреть файл и удалить дубликаты файлов вручную, если хотите.

Еще вы можете использовать опцию -dryrun, которая предоставит список дубликатов без каких-либо действий:

rdfind -dryrun true /home/user

Когда вы найдете дубликаты, вы можете заменить их жесткими ссылками.

rdfind -makehardlinks true /home/user

И если вы хотите удалить дубликаты, вы можете запустить.

rdfind -deleteduplicates true /home/user

Чтобы проверить другие полезные возможности rdfind, вы можете использовать руководство по rdfind.

man rdfind 

2. Fdupes – поиск дубликатов файлов в Linux

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

Для определения дубликатов файлов используются следующие методы:

  • Сравнение частичных подписей md5sum
  • Сравнение полных подписей md5sum
  • проверка побайтового сравнения

Как и rdfind, он имеет аналогичные параметры:

  • Рекурсивный поиск
  • Исключить пустые файлы
  • Показывает размер дубликатов файлов
  • Немедленно удаляйте дубликаты
  • Исключить файлы с другим владельцем

Установите Fdupes в Linux

Чтобы установить fdupes в Linux, используйте следующую команду в соответствии с вашим дистрибутивом Linux.

sudo apt install fdupes         [On Debian, Ubuntu and Mint]
sudo yum install fdupes         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fdupes  [On Gentoo Linux]
sudo apk add fdupes             [On Alpine Linux]
sudo pacman -S fdupes           [On Arch Linux]
sudo zypper install fdupes      [On OpenSUSE]    

Синтаксис Fdupes аналогичен синтаксису rdfind. Просто введите команду, а затем каталог, который вы хотите просканировать.

fdupes <dir>

Для рекурсивного поиска файлов вам нужно будет указать -r такую опцию.

fdupes -r <dir>

Вы также можете указать несколько каталогов и указать каталог для рекурсивного поиска.

fdupes <dir1> -r <dir2>

Чтобы fdupes вычислил размер дубликатов файлов, используйте опцию -S.

fdupes -S <dir>

Для сбора сводной информации о найденных файлах используйте опцию -m.

fdupes -m <dir>

Наконец, если вы хотите удалить все дубликаты, используйте опцию -d, подобную этой.

fdupes -d <dir>

Fdupes спросит, какой из найденных файлов удалить. Вам нужно будет ввести номер файла:

Решение, которое определенно не рекомендуется, — использовать параметр -N, что приведет к сохранению только первого файла.

fdupes -dN <dir>

Чтобы получить список доступных опций для использования с fdupes, просмотрите страницу справки, запустив.

fdupes -help

3. Rmlint – удаление повторяющихся файлов

Rmlint — это инструмент командной строки, который используется для поиска и удаления дубликатов и файлов, похожих на ворс, в системах Linux. Он помогает идентифицировать файлы с идентичным содержимым, а также различные формы избыточности или ворса, такие как пустые файлы, неработающие символические ссылки и потерянные файлы.

Установите Rmlint в Linux

Чтобы установить Rmlint в Linux, используйте следующую команду в соответствии с вашим дистрибутивом Linux.

sudo apt install rmlint         [On Debian, Ubuntu and Mint]
sudo yum install rmlint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/rmlint  [On Gentoo Linux]
sudo apk add rmlint             [On Alpine Linux]
sudo pacman -S rmlint           [On Arch Linux]
sudo zypper install rmlint      [On OpenSUSE]    

4. dupeGuru – поиск повторяющихся файлов в Linux

dupeGuru — это кроссплатформенный инструмент с открытым исходным кодом, который можно использовать для поиска дубликатов файлов в системе Linux. Инструмент может сканировать имена файлов или содержимое в одной или нескольких папках. Это также позволяет вам найти имя файла, похожее на файлы, которые вы ищете.

dupeGuru доступен в разных версиях для платформ Windows, Mac и Linux. Его функция быстрого алгоритма нечеткого сопоставления поможет вам найти дубликаты файлов в течение минуты. Его можно настраивать, вы можете извлекать именно те дубликаты файлов, которые хотите, и удалять ненужные файлы из системы.

Установите dupeGuru в Linux

Чтобы установить dupeGuru в Linux, используйте следующую команду в соответствии с вашим дистрибутивом Linux.

sudo apt install dupeguru         [On Debian, Ubuntu and Mint]
sudo yum install dupeguru         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/dupeguru  [On Gentoo Linux]
sudo apk add dupeguru             [On Alpine Linux]
sudo pacman -S dupeguru           [On Arch Linux]
sudo zypper install dupeguru      [On OpenSUSE]    

5. FSlint — средство поиска дубликатов файлов для Linux

FSlint — бесплатная утилита, которая используется для поиска и очистки различных форм ворса в файловой системе. Он также сообщает о повторяющихся файлах, пустых каталогах, временных файлах, повторяющихся/конфликтующих (двоичных) именах, неверных символических ссылках и многом другом. Он имеет режимы командной строки и графического интерфейса.

Однако важно отметить, что на момент прекращения моих знаний в сентябре 2022 года FSlint последний раз обновлялся в 2013 году и может не поддерживаться активно или не быть совместимым с новыми дистрибутивами Linux.

Установите FSlint в Linux

Чтобы установить FSlint в Linux, используйте следующую команду в соответствии с вашим дистрибутивом Linux.

sudo apt install fslint         [On Debian, Ubuntu and Mint]
sudo yum install fslint         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fslint  [On Gentoo Linux]
sudo apk add fslint             [On Alpine Linux]
sudo pacman -S fslint           [On Arch Linux]
sudo zypper install fslint      [On OpenSUSE]    

Заключение

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

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