jdupes

jdupes

Последняя версия: 1.27
Скачали: 124

jdupes — утилита для поиска одинаковых файлов и выполнения действий с найденными дублями: вывода групп совпадений, удаления лишних копий, замены дублей жёсткими ссылками, создания символических ссылок и дедупликации через возможности файловой системы. Программа работает из командной строки, поэтому вместо привычных кнопок использует параметры запуска: --recurse, --delete, --link-hard, --link-soft, --dedupe, --json, --hash-db, --ext-filter и другие. Базовый сценарий выглядит просто: пользователь указывает каталог, jdupes проверяет файлы по содержимому и печатает группы одинаковых путей, разделяя наборы пустыми строками. Такой формат удобен не только для ручного просмотра, но и для дальнейшей обработки в скриптах.

Важная особенность jdupes — работа только со стопроцентно одинаковыми файлами. Программа не ищет похожие фотографии, не сравнивает изображения по визуальному сходству, не распознаёт одинаковую музыку после изменения тегов и не считает дубликатами документы, которые похожи по имени, но отличаются содержимым. Если у MP3 изменён ID3-тег, а у JPEG изменены EXIF-данные, файл для jdupes уже не является идентичной копией, даже когда человек видит тот же трек или то же изображение.

Такой подход делает jdupes не универсальным чистильщиком диска, а узким инструментом для точного поиска дубликатов. В обзоре ниже программа рассматривается именно как конкретная CLI-утилита: с рабочими командами, ограничениями, рисками, сценариями применения, историей развития и сравнением с реальными аналогами.

Что такое jdupes и для каких задач она нужна

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

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

Типичные сценарии:

  • в папке Downloads накопились одинаковые установщики, архивы и PDF;

  • после переноса данных со старого диска остались копии тех же файлов в разных каталогах;

  • медиасервер создал большое количество одинаковых миниатюр или служебных файлов;

  • в резервных копиях есть повторяющиеся файлы, которые можно заменить hard links;

  • администратор хочет получить отчёт о дублях в формате JSON;

  • нужно быстро проверить большой каталог без графического интерфейса;

  • требуется встроить поиск одинаковых файлов в shell-скрипт или PowerShell-сценарий.

jdupes не анализирует похожие данные. Для похожих фотографий, изображений разного размера, повторяющихся кадров видео или аудиофайлов с отличающимися тегами лучше подходят Czkawka, dupeGuru и специализированные медиасканеры. Внутри сайта можно дополнительно посмотреть программы со схожей задачей: Auslogics Duplicate File Finder, CloneSpy, Duplicate Remover Free, NoClone, SearchMyFiles.

Краткая карточка программы

ПараметрОписание
Названиеjdupes
Полное описаниеконсольная программа для поиска и обработки файлов-дубликатов
Автор и сопровождающийJody Bruchon
Основа проектафорк fdupes 1.51, созданного Adrian Lopez
ЛицензияMIT License
Интерфейскомандная строка
Основной принцип поискаразмер файла, частичный хеш, полный хеш, побайтовое сравнение
Базовый выводгруппы одинаковых файлов, по одному пути в строке, пустая строка между группами
Основные действиявывод отчёта, удаление, hard links, symlinks, reflink/CoW-дедупликация
Машинно-читаемый выводJSON через --json
ПлатформыLinux, Windows, macOS; также Unix-like-системы при наличии сборки
Кому подходитопытным пользователям, администраторам, владельцам больших архивов, тем, кто автоматизирует обработку файлов
Кому не подходитпользователям, которым нужен графический интерфейс, поиск похожих изображений, визуальное сравнение фото или безопасная работа без командной строки

Карточка показывает главный компромисс: jdupes компактна, точна и хорошо встраивается в автоматизацию, но требует понимания параметров. В графических чистильщиках пользователь видит кнопки, превью и чекбоксы; здесь основное управление сосредоточено в строке запуска и текстовом выводе.

Интерфейс jdupes: почему здесь нет привычных кнопок

У jdupes нет главного окна, ленты инструментов, кнопок Сканировать, Удалить, Сохранить отчёт или Настройки. Рабочая среда программы — терминал. В Windows это PowerShell или Command Prompt, в Linux и macOS — терминал выбранной оболочки. Команда начинается с имени программы, затем идут параметры и пути к каталогам.

Минимальный запуск выглядит так:

jdupes /home/user/Downloads

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

/home/user/Downloads/file.pdf/home/user/Downloads/file-copy.pdf/home/user/Downloads/archive.zip/home/user/Downloads/old/archive.zip

Пустая строка отделяет один набор дубликатов от другого. Такой вывод важен: его легко читать глазами и легко передавать в сторонние обработчики. В jdupes нет отдельной кнопки экспорта, но есть параметры, которые меняют формат вывода. Для машинной обработки используется --json, для нулевого разделителя строк — --print-null, для показа размера дублей — --size, для итоговой сводки — --summarize или --print-summarize.

Вместо переключателей интерфейса используются параметры:

  • --help показывает справку;

  • --version выводит сведения о версии и флагах сборки;

  • --recurse включает обход подкаталогов;

  • --delete запускает интерактивный выбор сохраняемых файлов;

  • --no-prompt вместе с --delete удаляет лишние копии без вопросов;

  • --link-hard заменяет дубли жёсткими ссылками;

  • --link-soft заменяет дубли символическими ссылками;

  • --dedupe запускает дедупликацию через reflink/CoW, когда файловая система это поддерживает;

  • --ext-filter ограничивает набор проверяемых файлов;

  • --hash-db использует текстовую базу хешей для повторных запусков.

Для пользователя, привыкшего к графическим программам, интерфейс jdupes выглядит сухо. Но в этом есть преимущество: команда полностью описывает действие. В скрипте видно, какие каталоги сканируются, включена ли рекурсия, разрешено ли удаление, учитывается ли порядок параметров и есть ли фильтры. Такой формат снижает зависимость от ручных кликов, но повышает требования к внимательности.

Как jdupes находит дубликаты

jdupes не ищет одинаковые имена. Файл photo.jpg и файл copy_2024.jpg считаются дублями, если их содержимое полностью совпадает. Два файла с одинаковым именем не считаются дублями, если их данные отличаются. В этом принципиальное отличие от простого поиска по имени, расширению или дате изменения.

Алгоритм проверки построен как последовательность отсевов:

  1. Сначала исключаются файлы, которые не подходят под заданные пользователем фильтры.

  2. Затем сравнивается размер. Файлы разного размера не могут быть полностью идентичными, поэтому дальше они не проверяются.

  3. После этого используется частичный хеш начального блока данных.

  4. Затем вычисляется полный хеш файла.

  5. Финальный этап — проверка фактического содержимого побайтовым сравнением.

Такой порядок нужен для скорости. Самый дорогой вариант — сравнивать каждый файл с каждым полностью. При большом количестве файлов число сравнений резко растёт. jdupes отбрасывает большинство несовпадающих файлов раньше: разный размер или разные первые блоки данных сразу исключают пару из дальнейшей проверки.

Побайтовая проверка — важная страховка. Хеши ускоряют поиск, но хеш сам по себе не является доказательством полного совпадения. Поэтому обычный режим jdupes не заканчивает проверку на совпавшем хеше, а подтверждает результат фактическим сравнением данных. Параметр --quick отключает побайтовую проверку и полагается на хеши, но такой режим относится к рискованным и не подходит для ценных данных.

Основные возможности jdupes

Поиск дубликатов в одной папке

Самый простой сценарий — проверка одного каталога без вложенных папок:

jdupes ~/Downloads

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

При первом знакомстве с jdupes лучше запускать именно режим отчёта. Он не меняет файловую систему, показывает структуру найденных совпадений и помогает понять, какие действия безопасны. Уже после просмотра результата можно добавлять --delete, --link-hard или другие параметры.

Рекурсивное сканирование вложенных каталогов

Параметр --recurse проверяет указанные каталоги вместе с подкаталогами:

jdupes --recurse ~/Documents

Короткая форма:

jdupes -r ~/Documents

Такой режим нужен для архивов, медиатек, резервных копий и папок, где файлы разложены по вложенным директориям. Без рекурсии jdupes смотрит только переданный каталог и не спускается глубже.

У jdupes есть вариант --recurse:. Он действует на каталоги, указанные после него. Например:

jdupes archive --recurse: imported

В этом случае подкаталоги проверяются для imported, но не для archive. Такой синтаксис полезен, когда один каталог нужно сравнить только на верхнем уровне, а второй — полностью пройти вглубь. В отличие от графического интерфейса с чекбоксами включения подпапок, здесь правило задаётся прямо в строке команды.

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

Параметр --delete запускает режим, в котором jdupes спрашивает, какие файлы сохранить:

jdupes --delete --recurse ~/Downloads

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

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

Автоматическое удаление без вопросов

Параметр --no-prompt работает вместе с --delete:

jdupes --delete --no-prompt --recurse ~/Downloads

В этом режиме jdupes сохраняет первый файл в каждом наборе дубликатов, а остальные удаляет без дополнительных вопросов. Это удобно для автоматизации, но опасно без контроля порядка. Чтобы сделать поведение предсказуемее, используется --param-order: порядок каталогов в команде становится важнее выбранной сортировки.

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

jdupes --param-order --delete --no-prompt --recurse /data/master /data/imported

В такой команде сначала стоит каталог, который должен иметь приоритет. Но перед запуском автоматического удаления всё равно нужно выполнить сухой просмотр без --delete --no-prompt:

jdupes скриншот 1

jdupes --param-order --recurse /data/master /data/imported

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

Замена дублей жёсткими ссылками

Параметр --link-hard заменяет одинаковые файлы жёсткими ссылками на первый файл в группе:

jdupes --link-hard --recurse /data/archive

Hard link делает несколько имён файла ссылками на одни и те же данные на диске. Для пользователя пути остаются разными, но физически данные хранятся один раз. Такой подход особенно полезен для резервных копий, медиакэша, повторяющихся исходников, одинаковых вложений и каталогов, где нельзя просто удалить файл из-за ожидаемой структуры папок.

jdupes в обычном режиме не считает уже связанные hard links дублями. Параметр --hard-links меняет это поведение и заставляет учитывать связанные файлы как дубликаты. Это нужно только в специальных сценариях: по умолчанию игнорирование уже связанных файлов помогает избежать лишних действий и снижает риск неоднозначного результата.

Для Windows есть ограничение hard links на уровне системы: количество жёстких ссылок на один файл ограничено. В больших наборах одинаковых файлов часть операций может завершиться ошибкой при достижении лимита.

Замена дублей символическими ссылками

Параметр --link-soft создаёт относительные символические ссылки вместо лишних копий:

jdupes --link-soft --recurse /data/archive

Symlink отличается от hard link тем, что это отдельная ссылка на путь. Если целевой файл переместить или удалить, символическая ссылка перестанет вести к данным. Поэтому --link-soft полезен в более ограниченных сценариях: когда структура каталогов контролируется, пути стабильны, а пользователь понимает, что символическая ссылка зависит от существования цели.

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

Дедупликация через reflink/CoW

Параметр --dedupe запускает дедупликацию через механизмы файловой системы:

jdupes --dedupe --recurse /data/archive

Этот режим связан с copy-on-write, cloning или reflink. Он не просто удаляет дубль и не заменяет его обычной ссылкой, а просит файловую систему совместно хранить одинаковые блоки данных там, где такая возможность поддерживается. Среди таких файловых систем — BTRFS, XFS с включённым reflink и Apple APFS.

Практический смысл --dedupe — освободить место без видимого изменения путей файлов. Пользователь по-прежнему видит отдельные файлы, но одинаковые блоки на диске не занимают место повторно. Этот вариант лучше рассматривать как инструмент для опытных пользователей: результат зависит от файловой системы, прав доступа и условий работы конкретного хранилища.

JSON-вывод для скриптов

Параметр --json создаёт машинно-читаемый вывод:

jdupes --json --recurse ~/Documents

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

Сценарии применения:

  • сформировать отчёт о дублях для администратора;

  • передать результаты в Python-скрипт;

  • создать список групп для ручной проверки в отдельном интерфейсе;

  • сохранить историю проверок;

  • интегрировать jdupes в регулярную задачу на сервере.

Сводка по найденным дублям

Параметр --summarize выводит итоговую информацию о найденных дублях, а --print-summarize печатает и сами совпадения, и сводку в конце:

jdupes --print-summarize --recurse ~/Downloads

Сводка полезна перед очисткой большого каталога. Полный список может занимать сотни строк, но итог сразу показывает масштаб проблемы. Для первой оценки лучше использовать --print-summarize, потому что он сохраняет детализацию и добавляет общий итог.

Фильтры и исключения

--ext-filter ограничивает набор файлов по расширению, размеру, подстроке пути и дате. Общий формат:

jdupes --ext-filter=onlyext:jpg,png --recurse ~/Pictures

Примеры:

jdupes --ext-filter=onlyext:pdf,docx,xlsx --recurse ~/Documents
jdupes --ext-filter=size+:100M --recurse ~/Videos
jdupes --ext-filter=nostr:/cache/ --recurse /data
jdupes --ext-filter=older:"2024-01-01" --recurse ~/Archive

Фильтры можно комбинировать. Например, команда ниже ищет только крупные JPG и PNG:

jdupes --ext-filter=onlyext:jpg,png --ext-filter=size+:5M --recurse ~/Pictures

Доступные варианты включают size, noext, onlyext, nostr, onlystr, newer, older. Сопоставление расширений не зависит от регистра, а поиск подстроки в пути чувствителен к регистру.

Hash database для повторных запусков

Параметр --hash-db создаёт или использует текстовую базу хешей:

jdupes --hash-db=jdupes_hashdb.txt --recurse /data/archive

Сокращённый вариант с точкой создаёт имя jdupes_hashdb.txt:

jdupes --hash-db=. --recurse /data/archive

База хранит пути, хеши и метаданные, чтобы ускорять повторные проверки. Это полезно на больших каталогах, которые сканируются регулярно. Отдельный параметр --hash-db-populate заполняет базу частичными и полными хешами без обычного поиска дублей:

jdupes --hash-db=. --hash-db-populate --recurse /data/archive

У hash database есть важное ограничение: пути должны передаваться одинаково от запуска к запуску. foo/, ./foo и ../parent/foo воспринимаются как разные записи. Поэтому для повторяемых задач нужно запускать jdupes из одного и того же рабочего каталога и с одинаковой записью путей.

Инструкция: как пользоваться jdupes

Подготовка перед запуском

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

Минимальная подготовка:

  • выделить каталог, который нужно проверить;

  • не запускать команды изменения на системных папках;

  • убрать из проверки каталоги, где файлы активно меняются;

  • сделать резервную копию важных данных;

  • сначала получить список дублей без удаления;

  • проверить, что в группах совпадений нет неожиданных путей;

  • только после этого добавлять --delete, --link-hard, --link-soft или --dedupe.

Для больших архивов полезно начать с фильтра по размеру. Сначала найти крупные дубли:

jdupes --size --ext-filter=size+:100M --recurse /data

После этого можно отдельно обработать мелкие файлы. Такой порядок уменьшает объём вывода и помогает быстрее увидеть, где теряется место.

Как посмотреть справку

Справка открывается командой:

jdupes --help

Короткая форма:

jdupes -h

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

Важные строки справки:

-d --delete-N --no-prompt-r --recurse-R --recurse:-L --link-hard-l --link-soft-B --dedupe-j --json-S --size-X --ext-filter-y --hash-db

Справку нужно смотреть именно перед включением действий, которые меняют файлы. У jdupes есть параметры с высоким риском: --quick, --partial-only, --no-change-check, --no-trav-check. Их нельзя использовать как ускорители без понимания последствий.

Ссылка:

Как найти дубликаты без удаления

Проверка одной папки:

jdupes ~/Downloads

Проверка папки с подкаталогами:

jdupes --recurse ~/Downloads

Проверка нескольких каталогов:

jdupes --recurse ~/Documents ~/Archive

Вывод будет состоять из групп:

/home/user/Documents/report.pdf/home/user/Archive/report_copy.pdf/home/user/Documents/photo.jpg/home/user/Archive/old/photo.jpg

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

jdupes --recurse ~/Documents ~/Archive > duplicates.txt

Как показать размер найденных дубликатов

Параметр --size добавляет размер:

jdupes --size --recurse ~/Downloads

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

jdupes --size --ext-filter=size+:50M --recurse /data

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

jdupes скриншот 2

jdupes --size --ext-filter=onlyext:mp4,mkv,avi,mov --recurse ~/Videos

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

Как удалить дубликаты вручную

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

jdupes --delete --recurse ~/Downloads

Рабочая логика такая:

  1. jdupes сканирует каталог.

  2. Находит набор одинаковых файлов.

  3. Показывает пользователю группу.

  4. Пользователь выбирает, какие файлы сохранить.

  5. Остальные файлы из группы удаляются.

  6. Программа переходит к следующей группе.

Перед таким запуском желательно выполнить просмотр без удаления:

jdupes --recurse ~/Downloads

Если список выглядит ожидаемо, можно повторить команду с --delete.

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

jdupes --delete --recurse ~/Archive ~/Archive

Такой запуск создаёт опасную ситуацию: одни и те же файлы могут оказаться в сравнении с самими собой. Защита от двойного обхода существует, но полагаться на неё как на замену внимательности нельзя.

Как удалить дубликаты автоматически

Автоматическое удаление сохраняет первый файл в группе и удаляет остальные:

jdupes --delete --no-prompt --recurse ~/Downloads

Для контролируемой очистки вторичного каталога лучше использовать порядок параметров:

jdupes --param-order --delete --no-prompt --recurse /data/main /data/import

Здесь /data/main указан раньше. Но перед таким запуском нужен предварительный отчёт:

jdupes --param-order --recurse /data/main /data/import

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

Как заменить дубликаты жёсткими ссылками

Команда:

jdupes --link-hard --recurse /data/archive

Этот сценарий не удаляет структуру файлов в привычном смысле. Пути остаются, но одинаковые копии заменяются hard links. В файловых менеджерах и программах такие файлы выглядят как отдельные элементы, но место на диске используется один раз.

Перед запуском полезно получить список:

jdupes --recurse /data/archive

Затем выполнить связывание:

jdupes --link-hard --recurse /data/archive

После операции jdupes использует статусные стрелки. В документации описаны такие обозначения:

ОбозначениеЗначение
---->файл успешно заменён hard link
-@@->файл успешно заменён symlink
-##->файл клонирован через механизм файловой системы
-==->файл уже был hard link на первый файл группы
-//->операция связывания не выполнена из-за ошибки

Эти символы важны при чтении логов. В графической программе ошибка обычно показывается всплывающим окном; в jdupes результат операции виден прямо в выводе.

Как получить машинно-читаемый отчёт

Команда:

jdupes --json --recurse /data/archive > duplicates.json

JSON-вывод удобен, когда результат нужно разобрать программно. Например, можно получить отчёт, передать его в Python, отфильтровать группы по каталогу, сформировать таблицу или отправить уведомление администратору.

Для ручного чтения обычный вывод проще. Для автоматизации JSON надёжнее, потому что не зависит от пробелов, пустых строк и особенностей имён файлов.

Как ограничить проверку по расширению, размеру и дате

Только изображения:

jdupes --ext-filter=onlyext:jpg,jpeg,png,webp --recurse ~/Pictures

Исключить архивы:

jdupes --ext-filter=noext:zip,rar,7z --recurse ~/Downloads

Только файлы больше 1 ГБ:

jdupes --ext-filter=size+:1G --recurse /media/storage

Только пути, где есть camera_uploads:

jdupes --ext-filter=onlystr:camera_uploads --recurse ~/Pictures

Исключить кэш:

jdupes --ext-filter=nostr:/cache/ --recurse /data

Только старые файлы:

jdupes --ext-filter=older:"2023-01-01" --recurse ~/Archive

Фильтры особенно полезны, когда каталог содержит разные типы данных. Вместо проверки всего диска можно сначала обработать крупные видео, затем документы, затем изображения. Такой порядок делает результат понятнее и уменьшает риск необдуманного удаления.

Практические сценарии применения

Очистка домашней папки от повторно скачанных файлов

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

Безопасная последовательность:

jdupes --size --recurse ~/Downloads

После просмотра:

jdupes --delete --recurse ~/Downloads

Для автоматического удаления в Downloads лучше не использовать --no-prompt сразу. В загрузках часто лежат файлы с одинаковым содержимым, но пользователь может хотеть оставить копию в конкретной подпапке. Интерактивный режим позволяет принять решение по каждой группе.

Проверка коллекции фотографий без поиска похожих снимков

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

Команда для точных копий изображений:

jdupes --size --ext-filter=onlyext:jpg,jpeg,png,webp --recurse ~/Pictures

Этот сценарий полезен после импорта фотографий с телефона, камеры, облака или внешнего диска. Но для поиска похожих кадров, серийных снимков и пересохранённых изображений нужен другой инструмент. В таких случаях лучше рассматривать Czkawka или dupeGuru: они ориентированы на сценарии, где требуется не только точное совпадение файла, но и поиск похожих данных.

Оптимизация медиатеки через hard links

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

Пример:

jdupes --link-hard --recurse /srv/media

Для медиатеки важно сначала ограничить область. Не стоит запускать hard linking на всём системном диске. Лучше выбрать конкретный каталог, где повторяющиеся файлы ожидаемы: кэш миниатюр, папку импорта, временную область транскодирования или архив медиафайлов.

Проверка резервных копий

В резервных копиях часто повторяются одинаковые файлы между разными снимками состояния. jdupes может показать такие копии и заменить их hard links, если структура хранения это допускает. Но этот сценарий требует особенно осторожного подхода: резервная копия ценна именно как независимая копия, и не в каждой стратегии допустимо объединять файлы ссылками.

Для первичной оценки:

jdupes --size --print-summarize --recurse /backup

Для связывания только после проверки:

jdupes --link-hard --recurse /backup

Если резервные копии должны быть физически независимыми, лучше ограничиться отчётом. Если используется локальное хранилище, где hard links входят в выбранную стратегию хранения, jdupes помогает уменьшить объём повторяющихся данных.

Автоматизация в скриптах

jdupes хорошо подходит для скриптов: программа принимает параметры, возвращает текстовый или JSON-вывод и не требует графической оболочки. Пример простого отчёта:

#!/bin/shjdupes --json --recurse /data/archive > /var/log/jdupes-duplicates.json

Для задач, где наличие дублей должно считаться ошибкой, применяется --error-on-dupe:

jdupes --error-on-dupe --recurse ./release

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

Плюсы и минусы jdupes

Плюсы:

  • программа сравнивает содержимое файлов, а не только имена;

  • обычный режим завершает проверку побайтовым сравнением;

  • поддерживается рекурсивный обход каталогов;

    jdupes скриншот 3

  • доступны интерактивное и автоматическое удаление;

  • есть замена дублей hard links и symlinks;

  • поддерживается reflink/CoW-дедупликация на подходящих файловых системах;

  • есть JSON-вывод для автоматизации;

  • фильтры позволяют ограничивать проверку по расширению, размеру, подстроке пути и дате;

  • hash database ускоряет повторные проверки крупных наборов файлов;

  • программа работает из командной строки и подходит для серверов без графической оболочки;

  • открытая лицензия MIT позволяет использовать утилиту в разных сценариях.

Минусы:

  • нет графического интерфейса с кнопками, предпросмотром и чекбоксами;

  • не ищет похожие изображения, похожие аудиофайлы и похожие видео;

  • не определяет оригинал по смыслу, качеству или важности папки;

  • автоматическое удаление требует точного контроля порядка файлов;

  • --quick, --partial-only, --no-change-check и --no-trav-check повышают риск потери данных;

  • --hash-db чувствителен к тому, как записаны пути при повторных запусках;

  • --dedupe зависит от файловой системы;

  • symlinks могут привести к путанице при удалении;

  • для новичка справка и параметры выглядят сложнее, чем графическая программа.

Системные требования

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

КомпонентТребование
Интерфейскомандная строка
Операционные системыLinux, Windows, macOS; Unix-like-системы при наличии сборки
Права доступачтение проверяемых файлов; для удаления и ссылок нужны права на изменение каталогов
Оперативная памятьзависит от количества файлов и параметров обработки
Дисковая подсистемаскорость проверки зависит от носителя, кэша ОС и количества мелких файлов
Файловая системадля --dedupe нужна поддержка reflink/CoW; для hard links нужна поддержка жёстких ссылок
ТерминалPowerShell, Command Prompt, Bash, Zsh или другая оболочка

Для обычного поиска дублей jdupes достаточно доступа на чтение. Для --delete нужны права на удаление файлов. Для --link-hard и --link-soft нужны права на изменение каталогов и поддержка соответствующего типа ссылок. Для --dedupe одной команды недостаточно: файловая система должна поддерживать нужный механизм.

При работе с сетевыми файловыми системами и облачными виртуальными дисками нужно учитывать особенности метаданных. Параметр --no-trav-check отключает защиту от двойного обхода, но такой вариант снижает безопасность и связан с особыми случаями вроде Google Drive File Stream.

Рабочий процесс в jdupes

Сначала отчёт, потом действие

Правильный порядок работы с jdupes начинается не с удаления, а с просмотра. Команда отчёта показывает, что именно программа считает дублями:

jdupes --recurse /data

После этого можно сузить область:

jdupes --recurse /data/photos

И добавить размер:

jdupes --size --recurse /data/photos

Только после проверки результата стоит выбирать действие:

jdupes --delete --recurse /data/photos

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

Как выбирать между удалением, hard links и отчётом

ЗадачаПодходящий режим
Нужно понять масштаб проблемы--print-summarize
Нужно получить список дублейзапуск без action-параметров
Нужно удалить копии вручную--delete
Нужно удалить копии автоматически--delete --no-prompt с предварительным отчётом
Нужно оставить структуру путей--link-hard
Нужно создать ссылки на первый файл--link-soft
Нужно использовать CoW-дедупликацию--dedupe
Нужен отчёт для скрипта--json
Нужны быстрые повторные проверки--hash-db

Удаление подходит, когда лишние копии действительно не нужны. Hard links подходят, когда пути должны сохраниться. Отчёт подходит, когда данные важны, а решение должен принимать человек. --dedupe уместен на поддерживаемой файловой системе и после понимания, как она хранит одинаковые блоки.

Сравнение с аналогами

jdupes логично сравнивать не с большими системными оптимизаторами, а с инструментами поиска дублей: fdupes, rmlint, fclones, Czkawka и dupeGuru. Эти программы пересекаются по задаче, но сильно отличаются по интерфейсу и подходу.

ПрограммаИнтерфейсТочные дубликатыПохожие изображенияHard linksSymlinksReflink/CoWJSON/автоматизацияЛучший сценарий
jdupesCLIданетдадададаточный поиск и автоматизация
fdupesCLIданетограниченнозависит от сценариянет как основной фокусчерез текстовый выводпростая совместимость со старыми инструкциями
rmlintCLI + generated scriptsданетдадазависит от режимада, через отчёты и скриптыкомплексная очистка файлового мусора
fclonesCLIданетдазависит от действиядадабольшие наборы файлов и гибкая обработка
CzkawkaGUI и CLIдадаесть режимы обработкизависит от фронтендане главный фокусесть CLI-компонентыпоиск дублей и похожих медиа
dupeGuruGUIдачастично через режимы и fuzzy matchingнет как основной сценарийнет как основной сценарийнетнет как главный фокусудобная ручная проверка дублей

jdupes и fdupes

fdupes — историческая основа, от которой jdupes оттолкнулась. Оба инструмента работают из командной строки и ищут одинаковые файлы. Разница в том, что jdupes не является полностью совместимой заменой. В старых скриптах параметры нельзя переносить без проверки: одинаковая буква может означать разные действия.

jdupes стоит выбирать, когда нужны дополнительные действия, Windows-порт, JSON, hard links, symlinks, dedupe и более развитые фильтры. fdupes остаётся простым вариантом для пользователей, которым достаточно базового поиска и удаления по знакомым инструкциям.

jdupes и rmlint

rmlint шире по задаче. Он ищет не только дубликаты, но и другие типы файлового мусора, а обработку часто организует через сгенерированные shell-скрипты. Такой подход хорош, когда нужно не просто увидеть одинаковые файлы, а построить полноценный сценарий очистки.

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

jdupes и fclones

fclones — современная CLI-утилита для поиска одинаковых файлов. Она ориентирована на гибкий контроль области сканирования, разные способы удаления копий, интеграцию с Unix-инструментами и JSON.

Сравнение с jdupes зависит от сценария. fclones хорошо подходит для больших наборов файлов, где важны гибкие команды группировки и дальнейшая обработка. jdupes сильна тем, что сочетает прямые действия --delete, --link-hard, --link-soft, --dedupe, фильтры, hash database и простой формат вывода. Для пользователя, которому нужна компактная команда найти и сразу выполнить действие, jdupes часто выглядит проще.

jdupes и Czkawka

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

jdupes выигрывает в точности и лаконичности CLI-сценариев, но не заменяет Czkawka для визуального поиска похожих фото. Если нужно найти одинаковые копии файлов в архиве, jdupes подходит лучше. Если нужно разобрать фотоколлекцию с похожими кадрами и изображениями разного размера, Czkawka даёт больше подходящих инструментов.

jdupes и dupeGuru

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

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

Отзывы пользователей и профильных журналов

Мнение профильных изданий

Softpedia оценивает jdupes как лёгкую консольную утилиту для точного поиска дублей. В обзоре подчёркиваются два важных момента: программа работает со стопроцентными совпадениями и выводит наборы дублей по одному пути в строке, разделяя группы пустыми строками. Также Softpedia отдельно предупреждает о риске --quick, потому что этот параметр пропускает побайтовую проверку.

LinuxCommunity рассматривает Jdupes как замену Fdupes, но подчёркивает, что команды этих инструментов частично различаются. Это соответствует общей логике проекта: jdupes наследует идею fdupes, но не является полностью совместимой копией.

John Bokma в материале о поиске дубликатов описывает переход от fdupes к jdupes и подчёркивает, что Jody Bruchon написал более быстрый вариант. Такой отзыв характерен для опытных Linux-пользователей: jdupes воспринимается как инструмент для тех, кто уже понимает модель fdupes и хочет более развитую утилиту.

Усреднённое мнение пользователей сети

В обсуждениях jdupes чаще всего ценят за скорость, простоту включения в скрипты, точность поиска одинаковых файлов и поддержку hard links. Пользователи, работающие с NAS, медиасерверами, резервными копиями и большими архивами, выбирают программу потому, что она не требует GUI и может обрабатывать большие деревья каталогов из терминала.

Типичные положительные оценки сводятся к нескольким пунктам:

  • поиск идёт по содержимому, поэтому разные имена не мешают найти дубль;

  • вывод легко сохранить в файл;

  • hard links позволяют освободить место без разрушения структуры папок;

  • JSON удобен для автоматизации;

  • параметры позволяют точно ограничить область проверки;

  • утилита подходит для серверов и удалённых систем.

Критика тоже повторяется. Новичкам трудно сразу понять разницу между --delete, --no-prompt, --link-hard, --link-soft и --dedupe. Пользователи также опасаются автоматического удаления: одна ошибка в пути, порядке каталогов или параметрах способна привести к потере нужных копий. Обсуждения на форумах часто сводятся не к вопросу, находит ли jdupes дубли, а к вопросу, как безопасно удалить только из вторичной папки и не тронуть основную.

Какие претензии встречаются чаще всего

Самая частая претензия — отсутствие графического интерфейса. Для человека, который хочет открыть окно, нажать Scan и отметить галочками файлы, jdupes неудобна. Но для командной строки это не недостаток, а часть архитектуры.

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

Третья претензия связана с несовместимостью параметров fdupes. Старые инструкции не всегда подходят. Перед переносом сценария нужно проверить справку jdupes и смысл каждого параметра.

Четвёртая претензия — риск автоматических действий. Это справедливое ограничение. jdupes мощна именно потому, что умеет удалять, связывать и дедуплицировать без графических подтверждений. Такая мощность требует предварительного отчёта и осторожного запуска.

Безопасность и риск потери данных

jdupes относится к программам, где ошибка пользователя может быть дороже ошибки интерфейса. Утилита умеет удалять файлы, менять их на ссылки и просить файловую систему объединять одинаковые блоки. Поэтому безопасный сценарий строится вокруг предварительного просмотра.

Правила безопасной работы:

  • сначала запускать команду без action-параметров;

  • не добавлять --delete --no-prompt к непроверенному каталогу;

  • не указывать один и тот же каталог дважды;

  • не запускать destructive-режимы на системных папках;

  • не использовать --quick для данных, потеря которых недопустима;

  • не использовать --partial-only вместе с удалением, hard links или другими изменяющими действиями;

  • не отключать --no-change-check без понимания TOCTTOU-риска;

  • не отключать --no-trav-check ради скорости;

  • не обрабатывать symlinks вместе с удалением без проверки;

  • всегда сохранять отчёт перед массовым действием.

Отдельного внимания заслуживает --partial-only. Этот параметр сравнивает только начальный блок данных и игнорирует остальную часть файла. Он может быть полезен как информационный инструмент для специальных случаев, но при удалении или создании ссылок способен привести к масштабной потере данных. Поэтому jdupes требует указать его дважды, чтобы исключить случайное включение.

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

Частые ошибки при работе с jdupes

Запуск сразу с удалением

Плохой старт:

jdupes --delete --no-prompt --recurse /data

Такая команда не оставляет пространства для проверки. Правильный порядок:

jdupes --recurse /data

Потом:

jdupes --print-summarize --recurse /data

И только затем действие.

Ожидание поиска похожих фото

jdupes не сравнивает изображения визуально. Команда:

jdupes --recurse ~/Pictures

найдёт только полностью одинаковые файлы. Два похожих кадра, две версии одного фото или JPEG с разными EXIF-данными не попадут в одну группу, если байты отличаются.

Путаница между hard link и symlink

Hard link указывает на те же данные файла. Symlink указывает на путь. При удалении цели symlink ломается, а hard link продолжает вести к тем же данным, пока существует хотя бы одна ссылка. Поэтому --link-hard обычно безопаснее для сохранения структуры дублей внутри одного файлового пространства, а --link-soft требует более строгого контроля путей.

Использование параметров fdupes без проверки

jdupes выросла из fdupes, но параметры не полностью совпадают. Нельзя взять старый скрипт с fdupes, заменить имя команды на jdupes и считать результат предсказуемым. Нужно открыть jdupes --help и проверить каждый параметр.

Проверка системных каталогов

Запуск поиска на системных папках может дать странные и опасные группы. В системных каталогах есть ссылки, служебные файлы, кэши, компоненты приложений и файлы с особыми правами. jdupes лучше применять к пользовательским данным, архивам, Downloads, медиатекам и специально выделенным папкам.

Игнорирование прав доступа

Если у пользователя нет прав на чтение, файл не будет нормально обработан. Если нет прав на удаление или создание ссылок, action-режим завершит часть операций ошибками. Для отчёта достаточно чтения, для изменения файлов нужны права на запись в соответствующие каталоги.

Неправильная работа с hash database

Команды:

jdupes --hash-db=. foo/

и

jdupes --hash-db=. ./foo

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

Кому подойдёт jdupes

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

Программа особенно уместна для:

  • администраторов Linux, Windows и macOS;

  • владельцев NAS и домашних серверов;

  • пользователей больших архивов;

  • тех, кто хранит много резервных копий;

  • разработчиков, которым нужно проверять каталоги сборки;

  • владельцев медиасерверов;

  • пользователей, которые хотят автоматизировать отчёты;

  • тех, кому нужно заменить одинаковые файлы hard links;

  • людей, которым важен текстовый отчёт и повторяемые команды.

Для новичка jdupes хороша только при готовности читать справку и начинать с безопасных команд. Для сценария нажал кнопку и посмотрел превью лучше выбрать GUI-инструмент.

Кому лучше выбрать другую программу

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

Если нужна комплексная чистка файлового мусора с генерацией сценариев удаления, стоит рассмотреть rmlint. Если нужен современный CLI-инструмент для больших наборов файлов и гибкой интеграции с Unix-утилитами, подходит fclones. Если требуется простая совместимость со старыми инструкциями, иногда проще остаться на fdupes.

Внутри сайта для смежных задач можно посмотреть Remove Empty Directories, LookDisk, SearchMyFiles, CloneSpy и Auslogics Duplicate File Finder. Эти программы закрывают соседние сценарии: поиск файлов, удаление пустых папок, графическую проверку дублей и работу с результатами в Windows.

FAQ

jdupes ищет похожие фотографии?

Нет. jdupes ищет только полностью одинаковые файлы. Похожие изображения, разные размеры одного снимка, пересохранённые JPEG и фотографии с изменёнными EXIF-данными не считаются дублями, если содержимое файла отличается.

Можно ли использовать jdupes в Windows?

Да. jdupes имеет Windows-порт и работает из PowerShell или Command Prompt. В Windows особенно важно учитывать права доступа и системные ограничения hard links.

Чем jdupes отличается от fdupes?

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

Что безопаснее: удалить дубли или заменить hard links?

Для сохранения структуры каталогов hard links часто безопаснее простого удаления: пути остаются, данные хранятся один раз. Но hard links тоже меняют файловую систему, поэтому перед применением нужен отчёт. Если данные особенно важны, самый безопасный первый шаг — сохранить список дублей без изменений.

Что делает --dedupe?

--dedupe запускает дедупликацию через механизмы файловой системы: reflink, copy-on-write или cloning. Результат зависит от поддержки файловой системы. На неподдерживаемом хранилище такой сценарий не даст ожидаемого эффекта.

Можно ли запускать jdupes по расписанию?

Да, потому что программа работает из командной строки. Для регулярных запусков лучше использовать отчётный режим, JSON и hash database. Автоматическое удаление по расписанию нужно включать только в каталоге с предсказуемыми правилами хранения.

Как получить отчёт без удаления?

Команда без action-параметров печатает список групп дублей:

jdupes --recurse /data

Для JSON:

jdupes --json --recurse /data > duplicates.json

Как не трогать скрытые файлы?

Используется параметр --no-hidden:

jdupes --no-hidden --recurse /data

Он исключает скрытые файлы из рассмотрения.

Почему уже связанные hard links не выводятся как обычные дубликаты?

jdupes обычно считает уже связанные файлы не-дубликатами для безопасности. Параметр --hard-links меняет это поведение и заставляет учитывать такие файлы как дубликаты.

Что делать перед автоматическим удалением?

Нужно выполнить ту же команду без --delete --no-prompt, проверить порядок каталогов, посмотреть группы совпадений и сохранить отчёт. Только после этого можно запускать автоматическое действие.

Итог

jdupes — инструмент для точного поиска файлов-дубликатов, а не графический чистильщик для всех типов совпадений. Его сильная сторона — проверка содержимого, простой текстовый вывод, работа в терминале, hard links, symlinks, reflink/CoW-дедупликация, JSON и фильтры. Программа хорошо подходит администраторам, владельцам больших архивов, пользователям NAS, медиасерверов и тем, кто строит повторяемые сценарии обработки файлов.

Для разовой ручной очистки лучше начинать с отчёта и интерактивного --delete. Для сохранения структуры каталогов уместен --link-hard. Для скриптов удобны --json, --error-on-dupe, --print-summarize и --hash-db. Для похожих изображений, похожей музыки и визуальной проверки jdupes не подходит: здесь практичнее Czkawka или dupeGuru.

Главный безопасный сценарий остаётся неизменным: сначала вывести группы дубликатов, затем проверить пути, после этого выбирать действие. jdupes даёт высокий контроль, но не заменяет внимательность пользователя.

Список изменений

Происхождение от fdupes:

  • jdupes выросла из fdupes — консольной программы Adrian Lopez для поиска и удаления одинаковых файлов. fdupes долго была привычным инструментом для Linux и BSD-пользователей, но развитие проекта замедлилось. Jody Bruchon начал работать над более быстрым вариантом и постепенно сформировал самостоятельную утилиту. В истории проекта важна не только скорость: jdupes получила дополнительные действия, Windows-порт, расширенную фильтрацию и более строгий акцент на предотвращение потери данных.

Ранние изменения и отделение от fdupes:

  • На раннем этапе jdupes сохраняла связь с fdupes, но не стала полной заменой один к одному. Это принципиальный момент: некоторые параметры отличаются по смыслу. В пакетных описаниях Fedora и Mankier отдельно подчёркивается, что jdupes нельзя слепо подставлять вместо fdupes в старые скрипты. Например, -I в jdupes означает isolate, а в fdupes этот параметр имеет другой смысл.
  • Такое расхождение появилось потому, что jdupes развивалась как самостоятельный инструмент, а не как ускоренная копия fdupes. В программе менялись параметры, добавлялись действия и удалялись функции, которые оказались малоценными в реальных сценариях.

Развитие скорости, безопасности и Windows-порта:

  • README jdupes выделяет несколько направлений развития: скорость, нативная поддержка Windows, стабильность вывода, избегание потери данных и функции, которых нет в fdupes. Среди таких возможностей — block-level deduplication и контроль файла, который сохраняется при автоматическом удалении набора дублей.
  • Отдельный акцент сделан на проверке совпадений. jdupes использует быстрые методы отсева, но не заменяет ими финальное подтверждение. Стандартный режим заканчивает проверку полным сравнением данных. Рискованные параметры существуют, но явно отделены от обычного режима.

Переход к более строгим параметрам:

  • В ветке 1.20 изменялись длинные параметры: названия приводились к более последовательному виду с разделением слов дефисами. Старые long options сохранялись временно для совместимости, но пользователям предлагалось переходить на новые имена.
  • В тот же период были важны изменения вокруг пустых файлов и одиночных файлов. Параметр --no-empty удалён по соображениям безопасности, а обработка нулевых файлов стала требовать явного --zero-match . Это логичное решение: пустые файлы одинаковы по содержимому, но массовое удаление нулевых файлов может быть нежелательным в проектах, где они используются как маркеры, заглушки или служебные файлы.

Усиление защиты от рискованных сценариев:

  • В развитии jdupes заметна линия на предотвращение ошибочного удаления. Параметр --partial-only требует двойного указания, чтобы его нельзя было включить случайно. --quick предупреждает о риске, потому что отключает побайтовую проверку. --no-trav-check отключает защиту от двойного обхода, но предназначен для особых случаев. --no-change-check отключает проверку изменения файла между проверкой и действием, что повышает риск TOCTTOU-сценариев.
  • Такие изменения показывают направление проекта: jdupes даёт опытному пользователю опасные инструменты, но не делает их обычным путём для новичка. Основной режим остаётся консервативным.

Hash database и повторные проверки:

  • Hash database появилась как способ ускорить повторные сканирования крупных каталогов. Возможность хранить хеши и метаданные в текстовом файле полезна для больших архивов: при одинаковых путях повторный запуск может обходиться без полного пересчёта хешей. Но функция требует дисциплины: одинаковая запись путей и одинаковый рабочий каталог становятся частью корректного сценария.
  • Параметр --hash-db-populate расширяет этот подход: можно заранее заполнить базу частичными и полными хешами, не выполняя обычный поиск дубликатов. Это удобно для подготовки к регулярным проверкам, но не отменяет необходимости понимать ограничения базы.

Развитие дедупликации и linking-режимов:

  • jdupes поддерживает несколько способов не хранить одинаковые данные повторно: hard links, symlinks и reflink/CoW-дедупликацию. Со временем эти режимы стали важной частью отличия от простого поисковика дублей. В выводе появились отдельные статусные стрелки для hard link, symlink, clone и ошибок связывания. Это делает лог операций читаемым даже без графического интерфейса.
  • Для пользователя это развитие означает: jdupes можно использовать не только как найти и удалить, но и как инструмент сохранения структуры каталогов при уменьшении реального расхода места.

Выберите ссылку для загрузки jdupes

Всего скачали: 124 | сегодня: 0

Похожие программы на jdupes

из раздела "Поиск дубликатов файлов"

Оставте свой отзыв о jdupes