Найти дубликаты файлов в Linux
Обновлено: 22.11.2024
Если ваш компьютер забит повторяющимися файлами и папками, воспользуйтесь этими пятью утилитами для Linux, чтобы освободить место.
Управление файлами само по себе является сложной задачей. Добавьте к этому большой объем дубликатов файлов, которые обычно занимают место в хранилище, и процесс станет еще более сложным.
В то время как стандартный способ борьбы с дубликатами файлов — найти и удалить их вручную. Однако использование специальной программы для поиска дубликатов файлов может значительно ускорить процесс.
Итак, если вы планируете избавиться от повторяющихся файлов и очистить свой компьютер, вот список некоторых из лучших инструментов для поиска и удаления повторяющихся файлов в Linux.
1. Фслинт
Fslint — это утилита на основе графического интерфейса и командной строки для очистки системы от различных видов мусора. Он называет этот беспорядок «ворсом» и предлагает несколько инструментов, которые помогут вам выполнить множество задач, включая поиск дубликатов файлов, пустых каталогов и проблемных имен файлов.
Благодаря графическому режиму работы и режиму командной строки, fslint упрощает для новых пользователей Linux очистку памяти компьютера от всех видов системного мусора.
Чтобы получить доступ к fslint через графический интерфейс, все, что вам нужно сделать, это открыть терминал и запустить команду fslint-gui.
Что касается расширенных функций, программа предлагает 10 различных функций в режиме командной строки, таких как findup, findu8, findnl, findtf и finded. Используя их, вы можете уточнить результаты поиска, чтобы увеличить свои шансы найти определенные типы дубликатов файлов в вашей системе.
Как установить fslint
В дистрибутивах на основе Debian, таких как Ubuntu:
В дистрибутивах на основе RHEL, таких как CentOS и Fedora:
В Arch Linux и Manjaro:
2. Fdupes
Fdupes — одна из самых простых программ для выявления и удаления дубликатов файлов, находящихся в каталогах. Выпущенный по лицензии MIT на GitHub, он бесплатный и с открытым исходным кодом.
Программа работает с использованием подписи md5sum и проверки побайтового сравнения для определения дубликатов файлов в каталоге. При необходимости вы также можете выполнять рекурсивный поиск, отфильтровывать результаты поиска и получать сводную информацию об обнаруженных повторяющихся файлах.
После того как вы обнаружите дублирующиеся файлы в каталоге, вы можете использовать fdupes либо для удаления файлов, либо для замены их ссылками на исходный файл.
Установка Fdupes
В дистрибутивах на основе Debian:
В дистрибутивах на основе RHEL:
Чтобы установить на Arch Linux и Manjaro:
3. Найти
Rdfind — еще одна утилита Linux, помогающая находить лишние файлы на компьютере в разных каталогах. Он основан на сравнении файлов на основе их содержимого, а не имени, для выявления дубликатов, что делает его работу более эффективной.
Для этого программа ранжирует одинаковые файлы в каталоге и определяет оригинал и дубликаты: файл с наивысшим рейтингом выбирается как оригинал, а остальные являются дубликатами.
Кроме того, rdfind также может вычислять контрольные суммы для сравнения файлов, когда это необходимо. А самое приятное то, что он сохраняет результаты сканирования в файл results.txt в домашнем каталоге, так что вы можете обратиться к нему, когда собираетесь удалить дубликаты, чтобы убедиться, что вы не удалили неправильные.
Конечно, как и в большинстве других средств поиска дубликатов файлов, rdfind также предлагает некоторые препроцессоры для сортировки файлов, игнорирования пустых файлов или установки символических ссылок. И последнее, но не менее важное: есть возможность удалять дубликаты файлов.
Как установить rdfind
4. ДупГуру
DupeGuru – это кроссплатформенный инструмент для поиска и удаления дубликатов файлов на вашем компьютере. Одной из его лучших характеристик является возможность настроить механизм сопоставления в соответствии с вашими предпочтениями, чтобы увеличить ваши шансы найти правильные типы дубликатов файлов в каталоге. Как и в некоторых других программах для поиска дубликатов, он также предлагает графический интерфейс для упрощения операций.
Говоря о функциональности, dupeGuru использует свой алгоритм нечеткого сопоставления для сканирования имен файлов или содержимого файлов и быстрого и эффективного поиска дубликатов.
Кроме того, он также хорошо справляется с информацией о музыке и изображениях, что дает ему преимущество перед другими средствами поиска дубликатов файлов. Кроме того, при необходимости у вас есть возможность настроить механизм сопоставления, чтобы найти именно те дубликаты файлов, которые вы хотите удалить.
DupeGuru также позволяет удалять повторяющиеся файлы. И для этого у него есть справочная система каталогов, которая предотвращает случайное удаление неправильных файлов. Помимо удаления, есть возможность переместить или скопировать их в другое место.
Установка DupeGuru
В дистрибутивах на основе Debian:
5. Рмлинт
Rmlint — это еще один lint, а не просто средство поиска и удаления дубликатов файлов для Linux.Это бесплатное приложение, которое очень быстро идентифицирует дубликаты файлов и каталогов в вашей системе. Вы также получаете поддержку формата хранения Btrfs, что выделяет его среди других инструментов в этом списке.
Кстати, некоторые из других аспектов, в которых rmlint превосходит другие конкурирующие инструменты для удаления дубликатов файлов, включают в себя возможность поиска файлов на основе определенного периода времени, поиска файлов с поврежденными идентификаторами пользователя/группы и поиска не удаленных двоичных файлов, которые занимают много места. Кроме того, как и некоторые другие программы, она также сохраняет результаты сканирования в файлы rmlint.json и rmlint.sh, которые пригодятся во время операции удаления.
Однако обратите внимание, что, в отличие от других инструментов, rmlint не самый простой в использовании: он создает сценарий для удаления дубликатов, который требует определенного уровня понимания для эффективного использования.
Как установить rmlint
В дистрибутивах на основе Debian:
В Fedora и CentOS:
В дистрибутивах на основе Arch, таких как Manjaro:
Предотвращение дублирования файлов в Linux
Используя перечисленные выше программы поиска дубликатов файлов, вы можете легко определить дубликаты файлов, которые могут занимать место на вашем компьютере, и полностью удалить их. Тем не менее, совет при работе с такими инструментами: будьте особенно осторожны в своих действиях, чтобы не допустить удаления важных файлов и документов в вашей системе.
Если вы немного скептически относитесь к тому, какие файлы удалить, а какие оставить, обязательно сделайте резервную копию всех данных в вашей системе, чтобы обезопасить себя.
Я обнаружил, что эта команда используется для поиска дубликатов файлов, но она была довольно длинной и сбила меня с толку.
Например, если я удалю -printf "%s\n" , ничего не выйдет. Почему это было? Кроме того, почему они использовали xargs -I<> -n1 ?
Есть ли более простой способ найти дубликаты файлов?
Под "быстрым" вы имеете в виду самый быстрый набор или самый быстрый результат? Если вы хотите последнее, будет выгодно разделить файлы по размеру до вычисления и разделения по хэшам MD5.
Извините, кажется, я не ясно выразился. Я хочу использовать командную строку с наименьшими сложностями для поиска дубликатов файлов.
3 ответа 3
Вы можете сделать его короче:
Выполните md5sum найденных файлов в действии -exec для поиска, а затем отсортируйте и выполните uniq, чтобы получить файлы, имеющие одинаковую сумму md5, разделенные символом новой строки.
@MvG Вы абсолютно правы .. отредактировано .. при написании ответа я подумал, что md5sum не принимает несколько аргументов, но да.
Это не самый быстрый. Для больших файлов размером в несколько ГБ нет необходимости хешировать их целиком. Вы можете сначала хэшировать N kB, а затем сделать полный хэш, если будет найден такой же хеш.
Вы можете использовать fdupes. От человека fdupes :
Поиск повторяющихся файлов по указанному пути. Такие файлы обнаруживаются путем сравнения размеров файлов и подписей MD5 с последующим побайтовым сравнением.
Вы можете вызвать его, например, fdupes -r /path/to/dup/directory, и он распечатает список дубликатов.
Обновить
Вы также можете попробовать fslint. После настройки fslint перейдите в cd /usr/share/fslint/fslint && ./fslint /path/to/directory
Если вы хотите понять исходную команду, давайте рассмотрим ее шаг за шагом.
Найти все непустые файлы в текущем каталоге или любом из его подкаталогов.
Распечатайте его размер. Если вы отбросите эти аргументы, вместо них будут напечатаны пути, что нарушит последующие шаги.
Сортировка по номерам (-n) в обратном порядке (-r). Однако сортировка в порядке возрастания и сравнение строк, а не чисел, должны работать так же хорошо, поэтому вы можете убрать флаги -rn.
Ищите повторяющиеся последовательные строки и сохраняйте только их.
Для каждой строки ввода (т. е. каждого размера, который встречается более одного раза) выполните следующую команду, но замените <> на размер. Выполняйте команду один раз для каждой строки ввода вместо передачи нескольких входных данных в один вызов.
Эта команда должна выполняться для каждого размера: найти файлы в текущем каталоге, которые соответствуют этому размеру, указанному в символах ( c ) или, точнее, в байтах. Напечатайте все совпадающие имена файлов, разделенные нулевыми байтами вместо символов новой строки, чтобы имена файлов, содержащие символы новой строки, обрабатывались правильно.
Для каждого из этих имен, разделенных нулем, вычислить контрольную сумму MD5 указанного файла. На этот раз мы разрешаем передачу нескольких файлов одному вызову md5sum .
Сортировка по контрольным суммам, поскольку uniq учитывает только последовательные строки.
Найти строки, которые совпадают в своих первых 32 байтах (контрольная сумма; после этого идет имя файла). Распечатайте все элементы таких серий дубликатов, с отдельными сериями, разделенными символами новой строки.
По сравнению с более простой командой, предложенной heemayl, у этой есть то преимущество, что она будет проверять контрольную сумму только для тех файлов, у которых есть другой файл того же размера.Он платит за это повторными вызовами find, таким образом, проходя дерево каталогов несколько раз. По этим причинам эта команда особенно хорошо подходит для каталогов с несколькими, но большими файлами, поскольку в этих случаях избегание вызова контрольной суммы может быть важнее, чем избегание повторного обхода дерева.
Крис Хоффман
Крис Хоффман
Главный редактор
Крис Хоффман – главный редактор How-To Geek. Он писал о технологиях более десяти лет и два года был обозревателем PCWorld. Крис писал для The New York Times, давал интервью в качестве эксперта по технологиям на телевизионных станциях, таких как NBC 6 в Майами, и освещал свою работу в таких новостных агентствах, как BBC. С 2011 года Крис написал более 2000 статей, которые были прочитаны почти миллиард раз — и это только здесь, в How-To Geek. Подробнее.
Независимо от того, используете ли вы Linux на рабочем столе или на сервере, существуют хорошие инструменты, которые сканируют вашу систему на наличие дубликатов файлов и помогают удалить их, чтобы освободить место. Доступны как надежный графический интерфейс, так и интерфейс командной строки.
Повторяющиеся файлы — это ненужная трата места на диске. В конце концов, если вам действительно нужен один и тот же файл в двух разных местах, вы всегда можете установить символическую ссылку или жесткую ссылку, сохраняя данные только в одном месте на диске.
FSlint
FSlint доступен в репозиториях программного обеспечения различных дистрибутивов Linux, включая Ubuntu, Debian, Fedora и Red Hat. Просто запустите менеджер пакетов и установите пакет «fslint». Эта утилита по умолчанию предоставляет удобный графический интерфейс, но также включает в себя версии командной строки различных функций. Как и многие приложения для Linux, графический интерфейс FSlint — это просто внешний интерфейс, который использует расположенные ниже команды FSlint.
Пусть это не отпугивает вас от использования удобного графического интерфейса FSlint. По умолчанию он открывается с выбранной панелью «Дубликаты» и вашим домашним каталогом в качестве пути поиска по умолчанию. Все, что вам нужно сделать, это нажать кнопку «Найти», и FSlint найдет список дубликатов файлов в каталогах вашей домашней папки. Используйте кнопки, чтобы удалить любые файлы, которые вы хотите удалить, и дважды щелкните их, чтобы просмотреть их.
Обратите внимание, что утилиты командной строки по умолчанию не находятся в вашем пути, поэтому вы не можете запускать их как обычные команды. В Ubuntu вы найдете их в /usr/share/fslint/fslint. Итак, если вы хотите запустить полное сканирование fslint в одном каталоге, вот команды, которые вы должны запустить в Ubuntu:
cd /usr/share/fslint/fslint
./fslint /path/to/directory
Эта команда на самом деле ничего не удалит. Он просто распечатает список дубликатов файлов — все остальное вы сделаете сами.
фдупы
Команда fdupes обычно не устанавливается по умолчанию, но доступна во многих репозиториях дистрибутива Linux. Это простой инструмент командной строки. Это, вероятно, самый удобный и быстрый инструмент, который вы можете использовать, если хотите найти дубликаты файлов в среде, где у вас есть доступ только к командной строке Linux, а не к графическому интерфейсу пользователя.
Использовать его просто. Просто запустите команду fdupes, а затем укажите путь к каталогу. Таким образом, fdupes /home/chris выведет список всех повторяющихся файлов в каталоге /home/chris, но не в подкаталогах! Команда fdupes -r /home/chris будет рекурсивно искать дубликаты файлов во всех подкаталогах внутри /home/chris и перечислять их.
Этот инструмент ничего не удаляет автоматически, он просто покажет вам список дубликатов файлов. Затем вы можете удалить дубликаты файлов вручную, если хотите. Вы также можете запустить команду с ключом -d, чтобы она помогла вам удалить файлы. Вам будет предложено выбрать файлы, которые вы хотите сохранить.
dupeGuru, dupeGuru Music Edition и dupeGuru Pictures Edition
Да, мы снова будем рекомендовать dupeGuru.Это кроссплатформенный инструмент с открытым исходным кодом, настолько полезный, что мы уже рекомендовали его для поиска дубликатов файлов в Windows и удаления дубликатов файлов на Mac.
dupeGuru немного менее удобен, потому что он недоступен в репозиториях программного обеспечения большинства дистрибутивов Linux, хотя он доступен в репозиториях Arch Linux. Тем не менее, веб-сайт dupeGuru предлагает PPA-репозиторий, который позволяет легко устанавливать их программные пакеты в дистрибутивах Ubuntu и Linux на основе Ubuntu. Пользователи других дистрибутивов Linux могут даже скомпилировать его из исходного кода.
Как и для Windows и Mac, dupeGuru предлагает три разные версии: стандартную версию для базового сканирования файлов-дубликатов, версию, предназначенную для поиска дубликатов песен, которые могли быть скопированы или закодированы по-другому, и версию, предназначенную для поиска похожих фотографий. которые были повернуты, изменены в размере или иным образом изменены. Вы можете получить их все на веб-сайте dupeGuru, и все три доступны в Ubuntu PPA.
Это приложение работает так же, как и на других платформах. Запустите его, добавьте одну или несколько папок для сканирования и нажмите «Сканировать». Вы увидите список повторяющихся файлов, и вы можете отметить их и удалить или переместить на другие платформы. Вы также можете легко открыть и просмотреть файл двойным щелчком мыши.
После установки пакет Ubuntu необходимо запустить из командной строки — например, с помощью команды dupeguru_se для стандартной версии. По умолчанию ярлык на рабочем столе не установлен. Это отсутствие системной интеграции является единственной причиной, по которой мы не можем рекомендовать эту утилиту более высоко, поскольку она хорошо работает после ее установки и запуска.
Как и следовало ожидать, это не полный список. Вы найдете много других утилит для поиска дубликатов файлов — в основном команды без графического интерфейса — в менеджере пакетов вашего дистрибутива Linux. Если у вас нет особых потребностей, перечисленные выше инструменты являются нашими любимыми и рекомендуемыми.
- › Как найти и удалить повторяющиеся файлы в любой операционной системе
- › Что означает XD и как вы его используете?
- › Как восстановить метки панели задач в Windows 11
- › Как установить Google Play Маркет в Windows 11
- › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
- › Почему прозрачные чехлы для телефонов желтеют?
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
Здравствуйте, друзья. Работа в терминале характерна для всех, кто работает с Linux-серверами. Однако в промежутках между использованиями могут быть уловки, которые мы упустили из виду или просто не знаем. Вот почему в этом посте мы покажем вам, как найти дубликаты файлов в Linux.
Знакомство с fdupes
Чтобы упростить достижение нашей цели, нам нужен инструмент под названием fdupes .
Согласно профилю инструмента на Github
FDUPES – это программа для выявления дубликатов файлов, находящихся в указанных каталогах.
в указанных каталогах.
Это приложение с открытым исходным кодом, код которого мы можем анализировать и использовать для наших целей. Он создан на языке C, поэтому это очень быстрый и эффективный инструмент.
Хотя разработка этого приложения не очень активна, оно очень эффективно. В дополнение к этому мы можем использовать его практически в любой системе, основанной на Linux, с помощью двоичных файлов или самостоятельно скомпилировав исходный код.
Итак, приступим.
Установка fdupes в Linux
Чтобы использовать команду fdupes, нам необходимо установить пакет в нашей системе.
Если вы используете Debian, Ubuntu, Linux Mint или любой из этих производных, вы можете установить его следующим образом
Если вы используете производный от RHEL дистрибутив, такой как CentOS Stream, RockyLinux, AlmaLinux или даже Fedora, вам необходимо запустить
Но если вы используете Gentoo и его производные
Наконец-то на Arch Linux и его производных, таких как Manjaro
Поскольку программа очень легкая, она будет установлена в вашей системе очень быстро.
Как найти дубликаты файлов в Linux
Чтобы проверить все доступные параметры, предоставляемые fdupes, вы должны запустить эту команду
Таким образом, у вас будет доступ к краткому описанию параметров и основному синтаксису, которому вы должны следовать при использовании команды.
Несмотря на множество опций, на самом деле эта команда довольно проста в использовании и очень легко достигает своей цели.
Итак, чтобы узнать, какие файлы дублируются в определенном месте, вам нужно запустить что-то вроде этого
Конечно, /home/angelo — это тестовый каталог, который вам нужно заменить.
Кроме того, вы можете выполнять поиск в двух или более каталогах одновременно, если разделите их пробелом.
Это список дубликатов файлов, которые появляются в обоих каталогах.
Также можно рекурсивно искать и сканировать каталоги с параметром -r.
При этом будут перечислены все дубликаты файлов в каждой из подпапок пути.
Многие люди находят дубликаты файлов, чтобы удалить их. Добавив параметр -d, мы можем сделать это за один раз.
Однако разработчик приложения предупреждает нас, что
При использовании -d или --delete следует соблюдать осторожность, чтобы застраховаться от
случайной потери данных
Но что, если мы хотим узнать размер этих файлов? Что ж, благодаря опции -m это очень простая задача.
Таким образом, мы можем использовать fdupes и находить дубликаты файлов в Linux.
Дубликаты файлов в Linux — Заключение
Терминал замечательный, и благодаря ему мы даже можем использовать его для сравнения файлов, чтобы узнать, какие файлы являются дубликатами благодаря fdupes .
Я Анджело. Системный инженер, увлеченный Linux и всем программным обеспечением с открытым исходным кодом. Хотя здесь я просто еще один член семьи.
Читайте также: