FSlint — специализированная утилита для Linux, которая ищет файловый lint: лишние, ошибочные, конфликтующие или потенциально проблемные объекты в файловой системе. Главный сценарий — поиск дубликатов файлов, но этим программа не ограничивается. В одном интерфейсе собраны проверки одинаковых файлов, пустых директорий, временных файлов, некорректных имён, битых символических ссылок, файлов с отсутствующими UID/GID, non-stripped binaries и лишних пробелов в текстовых файлах. У FSlint есть графическая оболочка и отдельные инструменты командной строки.
FSlint не относится к чистильщикам системы в стиле универсальных оптимизаторов. Он не очищает браузерные кэши, не правит реестр, не управляет автозагрузкой и не обещает ускорить компьютер. Его задача уже и точнее: найти конкретные проблемные элементы в каталогах Linux и дать пользователю возможность просмотреть результат перед удалением, сохранением списка, очисткой или объединением файлов через ссылки. Поэтому FSlint логичнее сравнивать не с CCleaner, а с CloneSpy, Auslogics Duplicate File Finder, NoClone, Duplicate Remover Free, Remove Empty Directories и Linux-инструментами вроде Czkawka, rmlint, fdupes, jdupes и dupeGuru.
Что такое FSlint и какие задачи он решает
Название FSlint складывается из идеи File System lint. В программировании lint — это мусор, шероховатости, подозрительные конструкции и ошибки стиля, которые не всегда ломают программу, но мешают сопровождению. В FSlint тот же подход перенесён на файловую систему: программа ищет не только явно лишние копии файлов, но и объекты, которые создают путаницу, занимают место, мешают переносу данных или указывают на проблемы в каталогах.
В графической оболочке задачи разделены на отдельные режимы. Пользователь выбирает область поиска в верхней части окна, затем нажимает Find в нужном режиме и получает таблицу результатов. По найденным объектам доступны действия Select, Save, Delete, Merge, Clean и, в некоторых случаях, Symlink. В меню и контекстных действиях встречаются Open, Open Folder, Copy, Rename..., Select all but first, Select all but newest, Select all but oldest, Select using wildcard, Unselect using wildcard и Unselect all.
Основные задачи FSlint:
найти одинаковые файлы в одной или нескольких папках;
показать, сколько места занимают лишние копии;
выделить найденные объекты по правилу, например оставить первый или самый новый файл;
удалить выбранные элементы;
объединить дубликаты через hard links или symlinks;
сохранить список результатов в файл;
найти проблемные имена файлов;
проверить имена с недействительной UTF-8-кодировкой;
обнаружить конфликтующие имена;
найти временные файлы и core-файлы;
найти dangling, suspect, absolute, relative и redundant symlinks;
обнаружить файлы с user ID или group ID, отсутствующими в системе;
найти пустые директории;
найти non-stripped executables;
проверить лишние пробелы и проблемы отступов в текстовых файлах.
Такой набор делает FSlint не просто duplicate file finder Linux, а инструментом ревизии файловой структуры. Простой поиск дубликатов файлов Linux решает одну задачу: найти одинаковые данные. FSlint закрывает несколько соседних задач, которые возникают при переносе архивов, чистке домашнего каталога, разборе старых резервных копий, проверке /usr/bin, анализе каталогов с исходниками и подготовке файлов к копированию на другую файловую систему.
Кому подходит FSlint
FSlint рассчитан на пользователей Linux, которые понимают разницу между обычным файлом, hard link, symbolic link, каталогом, временным файлом, UID/GID и исполняемым бинарником. В Linux Journal программу описывали как полезную, но не самую дружелюбную к новичку: сильная сторона FSlint — функции, слабая — грубоватый интерфейс, краткая справка и неочевидные элементы управления.
Для домашнего пользователя FSlint полезен в трёх ситуациях. Первая — накопились копии файлов в Downloads, Documents, старых архивах, папках с резервными копиями и переносах с флешек. Вторая — нужно проверить дерево каталогов после длительной синхронизации или ручного копирования. Третья — требуется аккуратно посмотреть, что занимает место, не доверяя автоматической очистке.
Для администратора FSlint интересен шире. Режимы Bad symlinks, Bad IDs, Empty directories, Non stripped binaries и Name clashes помогают обнаружить технические проблемы, которые обычные программы для удаления дубликатов не показывают. Например, после распаковки архива с другой машины могут появиться файлы с UID или GID, которых нет в локальной системе. После ручного переноса приложений и каталогов могут остаться символические ссылки на несуществующие цели.
Для разработчика FSlint удобен режимом Redundant whitespace. Он не заменяет полноценный форматтер кода, но позволяет найти файлы с лишними пробелами в конце строк и проблемами смешивания табов и пробелов в отступах. В интерфейсе этого режима есть параметры bad indenting for indent width и whitespace at end of line, а действие Clean предназначено для очистки выбранных результатов.
Для пользователя современных дистрибутивов FSlint остаётся полезным как понятный пример классического Linux-инструмента, но при выборе на каждый день нужно учитывать возраст программы и зависимость GUI от старого технологического стека. Сайт FSlint направляет пользователей к Czkawka как к более активно поддерживаемой Rust-реализации, которая проще устанавливается в современных системах.
Основные характеристики FSlint
| Параметр | Значение |
|---|---|
| Назначение | Поиск и очистка файлового lint в Linux |
| Основная задача | Поиск дубликатов файлов и других проблемных объектов |
| Платформа | Linux |
| Интерфейс | GUI и командная строка |
| Графическая оболочка | fslint-gui |
| Базовый набор проверок | Duplicates, Installed packages, Bad names, Name clashes, Temp files, Bad symlinks, Bad IDs, Empty directories, Non stripped binaries, Redundant whitespace |
| CLI-инструменты | findup, findnl, findu8, findbl, findsn, finded, findid, findns, findrs, findtf, findul, zipdir |
| Основные действия в GUI | Find, Stop, Pause, Resume, Select, Save, Delete, Merge, Clean, Symlink |
| Работа с результатами | Просмотр таблицы, выделение, контекстное меню, сохранение списка, удаление, объединение |
| Автор | Pádraig Brady |
| Лицензия оригинального кода | GNU GPL v2 or later |
| Тип программы | Локальная утилита для файловой системы, без облачной обработки |
FSlint устроен как оболочка над отдельными небольшими инструментами. Графический интерфейс не является отдельным движком поиска: он управляет теми же командами, которые доступны из каталога /usr/share/fslint/fslint в стандартной установке. Man-страница перечисляет все эти команды и описывает fslint-gui как GUI wrapper for the individual fslint command line tools.
Такой подход типичен для Unix-подобных систем: вместо одной монолитной программы используется набор узких утилит. Для пользователя это даёт два сценария. В простом варианте он работает через окно FSlint, нажимает Add, задаёт каталог, выбирает режим и нажимает Find. В техническом варианте он запускает конкретный инструмент командной строки, например findup для дублей или findbl для битых ссылок.
Интерфейс FSlint: как устроено главное окно
Главное окно FSlint делится на три рабочие зоны. Сверху находится настройка области поиска, слева — список проверок, справа и по центру — таблица результатов. Внизу расположены кнопки запуска, выбора, сохранения и действий над найденными объектами.

В русской локализации видны основные разделы: Дубликаты, Установленные пакеты, Плохие имена, Конфликты имён, Временные файлы, Ошибки символических ссылок, Ошибки идентификаторов, Пустые директории, Non stripped binaries, Лишние пробелы. Верхняя вкладка Путь для поиска соответствует Search path в английском интерфейсе, а Продвинутые параметры поиска соответствует Advanced search parameters. Список каталогов редактируется кнопками Добавить и Удалить, а флажок рекурсивно? отвечает за обход вложенных папок.
Таблица результатов меняется в зависимости от режима. В Duplicates отображаются группы одинаковых файлов, в строках есть Name, Directory, Date, а в некоторых режимах дополнительно используется Size, UID, GID или Target. Для дублей важна группировка: FSlint показывает не просто длинный список файлов, а наборы одинаковых объектов, чтобы пользователь видел, какие строки относятся к одной группе.
В нижней панели особенно важны пять кнопок:
Find запускает выбранную проверку;
Select открывает варианты выделения результатов;
Save сохраняет выбранный список в файл;
Delete удаляет выбранные элементы;
Merge объединяет дубликаты через ссылки;
Clean применяется там, где результат можно исправить, например в режиме лишних пробелов.
После начала долгой проверки в интерфейсе доступны Stop, Pause и Resume. Эти элементы появились как улучшение управления длинными поисками: в истории FSlint отдельно зафиксировано добавление Pause/Resume и пункта Open Folder для открытия папки, содержащей выбранный файл.

Вкладка Advanced search parameters нужна не для красоты, а для ограничения поиска. В ней есть Paths to exclude и Extra find parameters. Первый список исключает каталоги, второй позволяет передать дополнительные параметры в find. В FAQ FSlint приведён пример исключения каталогов */CVS через Paths to exclude и пример исключения файлов COPYING* и LICENSE через Extra find parameters.
Как FSlint ищет дубликаты файлов
Режим Duplicates — главная причина, по которой FSlint до сих пор вспоминают в обсуждениях Linux-утилит. Поиск дубликатов файлов Linux в FSlint не сводится к сравнению имён. Программа ориентируется на содержимое файлов и использует последовательную фильтрацию, чтобы не хешировать всё подряд без необходимости.
Алгоритм поиска дублей работает так:
файлы с уникальным размером исключаются сразу;
файлы, уже связанные hard link, обрабатываются отдельно;
для оставшихся кандидатов считается MD5 первых 4 КБ;
затем считается MD5 всего файла;
для защиты от совпадений MD5 дополнительно используется SHA1 всего файла.
Такой порядок важен для производительности. Если два файла имеют разный размер, сравнивать хеши бессмысленно. Если первые 4 КБ отличаются, полное чтение файла не требуется. Полный MD5 и SHA1 используются только для тех объектов, которые прошли предыдущие фильтры. Для больших архивов, ISO-образов, видеофайлов и резервных копий это снижает лишний ввод-вывод.

В таблице результатов FSlint показывает группы дублей и строку-сводку по каждой группе. В Linux.com при разборе программы отмечалось, что для группы одинаковых файлов FSlint показывает количество дублей и объём места, который тратится на хранение лишних копий. Там же описано контекстное меню результата: выбранный файл можно открыть, скопировать или переименовать; открытие выполняется через xdg-open, поэтому файл передаётся приложению, связанному с его типом в окружении рабочего стола.
В отличие от простых средств поиска по имени, FSlint подходит для каталогов, где один и тот же файл получил разные названия. Например, документ мог сохраниться как report.pdf, report-final.pdf и report-copy.pdf, но содержимое осталось одинаковым. Для FSlint такие файлы являются дубликатами, потому что сравнивается содержимое, а не косметика имени.
При этом FSlint не ищет визуально похожие изображения и не сравнивает аудио по акустическому отпечатку. Две фотографии с разным разрешением, разным сжатием или изменёнными метаданными для него не являются одинаковыми файлами. Для похожих изображений лучше подходят Czkawka или dupeGuru, а FSlint следует использовать тогда, когда нужна именно побайтовая или хеш-идентичность.
Основные функции FSlint
Duplicates
Duplicates ищет одинаковые файлы в выбранных каталогах. Пользователь добавляет директории через Add, оставляет или отключает recurse?, запускает Find и получает группы совпадений. После этого можно открыть файл, перейти в папку, скопировать путь, переименовать объект, сохранить список, удалить выбранные копии или объединить дубликаты.
Практический сценарий выглядит так: в домашней папке накопились одинаковые архивы, фотографии, документы и загрузки. FSlint помогает увидеть не только сами совпадения, но и то, какие копии лежат в каких директориях. Пользователь вручную выбирает, что оставить, а что убрать. Такой подход медленнее автоматического удаления, зато безопаснее: программа не принимает решение вместо владельца файлов.
В режиме дублей особенно полезно меню Select. Оно позволяет выделить не отдельные строки вручную, а группы по правилу: оставить первый файл, самый новый, самый старый или выбрать объекты из той же директории. В истории версий отдельно зафиксирована функция выбора файлов из той же папки — она помогает при сценарии: оставить оригиналы в основном каталоге, убрать копии из резервной папки.
Кнопка Merge не просто удаляет копии. В интерфейсном файле FSlint действие описано как объединение всех копий, кроме выбранной, через hard links или symlinks при разных файловых системах. Это полезно, когда нужно сохранить видимость нескольких путей, но убрать физическое дублирование данных. Такой режим требует понимания различий между обычным файлом, жёсткой ссылкой и символической ссылкой.
Installed packages
Installed packages показывает установленные пакеты. В старых обзорах FSlint этот режим выделяли как способ увидеть пакеты, отсортировать их по размеру, и понять, какие крупные компоненты занимают место. Linux.com описывает, что при запуске FSlint от root выбранные пакеты можно удалить через кнопку Delete.
Этот режим не делает FSlint полноценным менеджером пакетов. Он полезен как обзорный инструмент: показать установленные элементы и оценить размер. Для обычного удаления программ предпочтительнее штатный менеджер пакетов дистрибутива, потому что он лучше учитывает зависимости, репозитории, метаданные и состояние системы.
В истории программы видно, что package management functionality появилась в ветке 2.14 для deb/rpm-дистрибутивов, а позже дорабатывалась поддержка Arch Linux и Frugalware в функции Installed packages.
Bad names
Bad names ищет проблемные имена файлов и директорий. В GUI есть параметр Sensitivity= и флажок invalid UTF8 mode?. На уровне командной строки за эту область отвечают findnl и findu8: findnl ищет проблемы в именах, findu8 — имена с недействительной UTF-8-кодировкой.
Этот режим важен при переносе данных между системами, локалями и файловыми менеджерами. Имя, которое нормально отображается в одной системе, может превратиться в нечитаемый набор символов в другой. Проблемы часто появляются после копирования старых архивов, работы с разными кодировками, восстановления файлов или переноса данных с носителей, которые использовались в разных ОС.
FSlint не превращает проверку имён в автоматический массовый переименователь. Он показывает подозрительные объекты и даёт пользователю возможность принять решение. Для единичных случаев достаточно Rename... из контекстного меню. Для крупных деревьев с некорректной кодировкой потребуется осторожная ручная стратегия, потому что массовое переименование может сломать скрипты, ссылки и ожидаемые пути.
Name clashes
Name clashes ищет конфликтующие имена. В интерфейсе есть варианты Conflicting files, Aliases, Case conflicts, Same names, Same names(ignore case). Этот режим помогает увидеть ситуации, когда разные файлы имеют одинаковые или конфликтующие имена в разных каталогах.
Практическая ценность особенно заметна перед переносом файлов. На Linux файловая система обычно различает регистр, поэтому Report.txt и report.txt могут лежать рядом. На файловой системе или в окружении без учёта регистра такие имена конфликтуют. Если заранее проверить дерево через Name clashes, риск потерять или перезаписать файлы при переносе снижается.
Linux.com отдельно отмечал, что поиск одинаковых имён в разных директориях полезен перед копированием файлов в одну папку или на файловую систему без учёта регистра. Там же описывалось ограничение GUI: параметр -c командного findsn, который ищет case-only conflicts в одной директории, не был вынесен в графическую оболочку.
Temp files
Temp files ищет временные файлы и core-файлы. В интерфейсе есть флажок core file mode?, поле minimum age и единица days. Это позволяет ограничить поиск по возрасту, чтобы не трогать свежие временные файлы, которые ещё используются приложениями.
FSlint ищет временные объекты по признакам имени. В Linux.com перечислялись типичные шаблоны: файлы, оканчивающиеся на ~, .swp, .v, .bak, а также имена, начинающиеся с #. Для core-файлов используется дополнительная проверка, чтобы не считать любой файл со словом core в имени отладочным дампом.
Этот режим полезен в рабочих каталогах, где долго редактировались файлы, запускались редакторы, компиляторы, отладчики или старые программы. Но удаление временных файлов требует аккуратности: временный файл может быть единственной копией несохранённой работы редактора или промежуточным результатом сборки.
Bad symlinks
Bad symlinks проверяет символические ссылки. В интерфейсе доступны варианты Dangling, Suspect, Relative, Absolute и Redundant naming. В таблице результатов есть колонки Name, Directory, Target, что удобно: пользователь видит не только ссылку, но и её цель.
Dangling symlink указывает на несуществующую цель. Suspect symlink выглядит подозрительно по правилам FSlint. Absolute и relative links помогают проанализировать тип ссылок: абсолютные пути удобны в пределах одной системы, но ломаются при переносе дерева в другое место; относительные ссылки лучше переживают перенос каталога целиком, но тоже требуют аккуратной структуры.
Проверка битых символических ссылок особенно полезна после удаления пакетов вручную, переноса /opt, ручного копирования проектов, перемещения каталогов с сайтами или распаковки резервной копии. Простая очистка дублей такую проблему не найдёт.
Bad IDs
Bad IDs ищет файлы и каталоги с user ID или group ID, отсутствующими в системе. Командный инструмент findid описан именно как поиск файлов с dead user IDs. В GUI таблица этого режима содержит UID, GID, Size и Date.
Такие объекты часто появляются после распаковки архива, созданного на другой машине, после переноса данных с сервера или при работе с NFS. Файл может иметь числовой владелец, которому на текущей системе не соответствует реальное имя пользователя. Для администратора это сигнал: нужно проверить права, владельца и назначение файла.
FSlint в этом режиме выступает диагностическим инструментом. Он показывает проблему, но корректное исправление зависит от контекста. Для личных файлов подойдёт смена владельца на текущего пользователя. Для серверных каталогов, общих ресурсов и данных приложений нужно понимать, какой пользователь должен владеть объектами.
Empty directories
Empty directories ищет пустые папки. На первый взгляд это простая функция, но в больших деревьях каталогов пустые директории часто остаются после удаления проектов, сборок, временных данных, распакованных архивов и неудачных синхронизаций. Командный инструмент finded отвечает именно за поиск пустых директорий.
В истории FSlint есть важное изменение: в ветке 2.40 режим пустых директорий стал показывать empty branches, а не только пустые листовые директории. Это означает, что программа стала полезнее для очистки цепочек папок, где пуст не один конечный каталог, а вся ветка.
Сравнивать эту функцию можно с отдельной Windows-утилитой Remove Empty Directories, но FSlint встроил поиск пустых папок в общий набор Linux-проверок. Это удобно, когда пользователь уже проверяет каталог на дубликаты, битые ссылки и временные файлы.
Non stripped binaries
Non stripped binaries ищет исполняемые файлы, из которых не удалена отладочная информация. На уровне командной строки этому соответствует findns. В интерфейсе есть флажок Search $PATH, который позволяет искать такие объекты в путях запуска программ.

Non-stripped binaries занимают больше места, потому что содержат дополнительные символы и отладочные данные. Для разработки это нормально, но в рабочем окружении такие файлы иногда появляются случайно: после ручной сборки, копирования бинарников, установки нестандартных пакетов или хранения тестовых версий в системных каталогах.
FSlint не заменяет инструменты сборки и не решает, какие бинарники нужно очищать. Он показывает кандидатов. Дальше пользователь сам определяет, является ли файл рабочим отладочным бинарником, частью пакета или лишним объектом.
Redundant whitespace
Redundant whitespace ищет лишние пробелы и проблемы с отступами. В интерфейсе этого режима есть две опции: bad indenting for indent width и whitespace at end of line. Первая помогает обнаружить смешивание табов и пробелов относительно заданной ширины отступа, вторая — пробелы в конце строк.
Скриншот показывает типичный рабочий сценарий: выбран каталог исходников, активен режим Redundant whitespace, в результатах найден файл, а в контекстном меню доступны Open, Copy и Rename.... В нижней панели видны Find, Select, Save, Delete и Clean. Действие Clean в этом режиме относится к исправлению найденных пробельных проблем, а не к удалению файла.
Разработчикам этот режим полезен при старых проектах, где нет общего форматтера, .editorconfig или строгих правил в системе контроля версий. FSlint помогает увидеть файлы с хвостовыми пробелами и проблемами отступов, но не анализирует синтаксис языка программирования. Для современных проектов с автоформатированием FSlint лучше рассматривать как дополнительную проверку, а не как основной инструмент качества кода.
Командная строка FSlint
Командная строка — важная часть FSlint. Графическая оболочка удобна для разовых проверок, а отдельные CLI-инструменты подходят для повторяемых операций, скриптов, серверов без графического окружения и удалённой работы по SSH. Man-страница FSlint перечисляет набор таких инструментов и указывает, что каждый из них имеет --help с параметрами.
| Команда | Назначение |
|---|---|
fslint-gui | Запуск графической оболочки |
findup | Поиск дубликатов файлов |
findnl | Поиск проблем в именах файлов и каталогов |
findu8 | Поиск имён с недействительной UTF-8-кодировкой |
findbl | Поиск проблемных символических ссылок |
findsn | Поиск одинаковых или конфликтующих имён |
finded | Поиск пустых директорий |
findid | Поиск файлов с отсутствующими user ID |
findns | Поиск non-stripped executables |
findrs | Поиск redundant whitespace |
findtf | Поиск временных файлов |
findul | Поиск потенциально неиспользуемых библиотек |
zipdir | Освобождение лишнего места в ext2 directory entries |
CLI-часть особенно полезна, когда нужно получить текстовый вывод и обработать его дальше. Например, findup можно использовать в скрипте аудита каталога, а результат сохранить в файл для ручного просмотра. findbl удобен на сервере после переноса директории с большим количеством symlinks. finded подходит для регулярной проверки пустых веток в рабочем каталоге.
При этом FSlint не стоит превращать в автоматический удалитель без проверки результата. Команды, которые умеют удалять или объединять файлы, должны применяться только после понимания структуры каталогов. Безопасный подход — сначала получить список, затем вручную проверить несколько групп, затем ограничить область действия конкретной директорией и только после этого выполнять изменение файлов.
Системные требования
FSlint работает в Linux и использует графическую оболочку на Python/GTK. В истории ветки 2.40 отдельно зафиксированы требования GTK+ >= 2.4 и Python >= 2.3. Код fslint-gui использует Python 2 и GTK/Glade, что объясняет сложности запуска графической оболочки в современных дистрибутивах без старых библиотек.
| Компонент | Требование или особенность |
|---|---|
| Операционная система | Linux |
| Графический интерфейс | GTK/PyGTK |
| Язык выполнения GUI | Python 2 |
| Минимальные требования, зафиксированные в истории 2.40 | GTK+ >= 2.4, Python >= 2.3 |
| Работа без GUI | Отдельные CLI-инструменты FSlint |
| Права пользователя | Для домашней папки достаточно обычного пользователя; системные каталоги требуют повышенных прав |
| Безопасность обработки | Файлы обрабатываются локально, без облачной отправки |
FSlint можно запускать без прав root, если проверяется домашний каталог, архивы, папка загрузок или пользовательский проект. Запуск от root увеличивает область доступа и одновременно повышает риск ошибочного удаления. Для поиска дублей в личных данных права суперпользователя не нужны.
Для системных каталогов, пакетов, UID/GID и путей внутри /usr, /var, /opt или сетевых ресурсов могут потребоваться расширенные права. Такой запуск должен быть осознанным: FSlint покажет больше объектов, но ошибка в выборе строк затронет не только пользовательские файлы.
Как пользоваться FSlint
Подготовка перед поиском
Начинать нужно не с кнопки Find, а с выбора безопасной области. Лучший первый каталог — конкретная папка, где ожидаются дубликаты: Downloads, архив фотографий, старая резервная копия, папка проекта или внешний диск, подключённый для ревизии. Запуск проверки по корню системы создаёт слишком много шума и повышает риск удалить не тот объект.
Перед первым удалением стоит выполнить три действия:
ограничить поиск одной понятной директорией;
оставить включённым recurse? только тогда, когда нужно проходить вложенные папки;
использовать Save для сохранения списка результатов перед изменениями.
FSlint показывает результаты, но не знает, какой файл важнее для пользователя. Копия в Documents может быть рабочей, а файл в Downloads — исходником. Или наоборот: файл в архивной папке может быть единственной проверенной копией, а файл в рабочей директории — временным дублем. Поэтому удаление дубликатов файлов в Linux через FSlint должно оставаться ручным решением.
Поиск дубликатов в домашней папке
Рабочая последовательность для Duplicates:
открыть FSlint через
fslint-gui;перейти на вкладку Search path;
нажать Add;
выбрать каталог для проверки;
оставить recurse?, если нужно проверять вложенные папки;
выбрать слева Duplicates;
нажать Find;
дождаться групп результатов;
открыть подозрительные файлы через контекстное меню Open;
при необходимости открыть папку через Open Folder;
выделить лишние строки вручную или через Select;
сохранить список через Save;
удалить выбранное через Delete или объединить через Merge.
Главный контрольный момент — внутри каждой группы должна остаться хотя бы одна копия. В истории FSlint есть улучшение: программа стала запрашивать подтверждение, если пользователь выбрал для удаления все копии дубля. Это важная защита от потери данных при слишком широком выделении.
Исключение папок из поиска
Вкладка Advanced search parameters помогает исключить каталоги, которые не нужно анализировать. Это особенно полезно для .git, node_modules, временных папок сборки, кэшей, системных точек монтирования и каталогов, где повторяющиеся файлы являются нормой.
В FSlint есть два разных механизма:
| Элемент | Для чего нужен |
|---|---|
| Paths to exclude | Исключает каталоги и подкаталоги из обхода |
| Extra find parameters | Передаёт дополнительные условия в find |
FAQ FSlint приводит пример */CVS для исключения всех CVS-директорий через Paths to exclude. Для исключения файлов по имени используется Extra find parameters, например конструкция для исключения COPYING* и LICENSE.
Для обычного пользователя важен принцип: сначала исключаются каталоги, где поиск не нужен, и только потом запускается Find. Это сокращает время проверки и уменьшает количество ложных кандидатов.
Работа с результатами
После поиска не стоит сразу нажимать Delete. Результаты нужно читать группами. В Duplicates строка группы показывает, сколько объектов найдено и сколько места занято лишними копиями. Ниже идут конкретные файлы с именем, директорией и датой. Если имя одинаковое, но директории разные, нужно понять, какая копия является рабочей.
Контекстное меню помогает проверять строки без выхода из программы:

Open открывает выбранный файл;
Open Folder открывает каталог, где лежит файл;
Copy копирует путь;
Rename... переименовывает объект;
Select all in this directory помогает выбрать файлы из конкретной папки;
Select using wildcard выделяет элементы по шаблону;
Unselect using wildcard снимает выделение по шаблону.
Save стоит использовать перед массовым действием. Сохранённый список помогает восстановить логику решения: какие файлы были найдены, где они лежали и какие группы рассматривались. Это особенно полезно, если проверяется архив на внешнем диске или общая папка команды.
Очистка лишних пробелов
Для режима Redundant whitespace порядок отличается от удаления дублей:
выбрать каталог с исходниками или текстовыми файлами;
открыть режим Redundant whitespace;
включить bad indenting for indent width, если нужно искать проблемы отступов;
задать ширину отступа;
включить whitespace at end of line, если нужно искать пробелы в конце строк;
нажать Find;
открыть найденные файлы через Open;
выделить строки, которые нужно исправить;
применить Clean.
Этот режим требует особой осторожности с файлами, где пробелы имеют значение. Например, в некоторых текстовых форматах, тестовых фикстурах или выровненных таблицах изменение пробелов может повлиять на результат. Для исходников под контролем Git безопаснее сначала посмотреть diff после Clean и только затем фиксировать изменения.
Проверка битых ссылок
Для Bad symlinks нужно выбирать каталог, где символические ссылки действительно используются. Это может быть /usr/local, /opt, каталог проекта, дерево сайта, домашняя папка с конфигурациями или восстановленная резервная копия. После Find FSlint покажет имя ссылки, директорию и цель.
Проверять нужно не только факт, что цель не существует, но и причину. Ссылка могла сломаться после удаления файла, после перемещения каталога или из-за того, что не смонтирован нужный диск. Удаление ссылки решает только видимый мусор, но не исправляет причину, если отсутствующая цель должна быть восстановлена.
Поиск пустых директорий
Empty directories лучше запускать после удаления дублей и временных файлов, а не до них. Сначала очищаются содержательные объекты, затем программа находит пустые папки, которые остались после удаления. Если сделать наоборот, часть директорий станет пустой уже после очистки, и проверку придётся повторять.
Для системных путей удаление пустых директорий не всегда полезно. Некоторые программы создают пустые папки заранее и ожидают их наличие. В пользовательских архивах и старых проектах удаление пустых веток обычно безопаснее, но всё равно требует просмотра списка.
Безопасность удаления и типичные ошибки
FSlint — инструмент с реальными действиями над файлами, поэтому главный риск связан не с поиском, а с удалением, очисткой и объединением. Программа показывает кандидатов, но не знает контекст. Один и тот же файл может быть лишней копией в папке загрузок и важной контрольной копией в архиве.
Частые ошибки:
запуск проверки по
/без исключений;работа от root там, где достаточно обычного пользователя;
удаление всех строк в группе дублей;
выбор файлов по маске без ручной проверки;
удаление symlink без понимания, куда он указывал;
очистка временных файлов в активном рабочем каталоге;
удаление пустых директорий, которые нужны приложению;
применение Clean к текстовым файлам без просмотра изменений;
объединение дублей через Merge без понимания hard links;
проверка сетевых и внешних дисков без учёта прав и точек монтирования.
Безопасный порядок работы:
проверять один понятный каталог;
сохранять список результатов;
открывать несколько файлов из каждой крупной группы;

оставлять хотя бы одну копию дубля;
не использовать root без необходимости;
сначала удалять малые очевидные группы;
отдельно проверять архивы, фото, документы и системные каталоги;
после очистки повторять Find для контроля.
Особенно аккуратно нужно работать с папками синхронизации. В них одинаковые файлы могут быть частью механизма резервирования, истории, кэша или конфликта синхронизации. FSlint обнаружит совпадение содержимого, но не объяснит, почему приложение создало копии.
Преимущества и ограничения
Плюсы:
совмещает поиск дублей, пустых директорий, временных файлов, проблемных имён, битых ссылок и других файловых проблем;
работает локально, без загрузки файлов на сторонний сервер;
имеет графический интерфейс и набор командных инструментов;
проверяет дубликаты по содержимому, а не только по имени;
использует последовательный алгоритм сравнения размеров и хешей;
показывает группы одинаковых файлов и объём лишнего места;
позволяет сохранять список результатов;
поддерживает выделение по правилам через Select;
умеет удалять, объединять через ссылки и очищать отдельные типы проблем;
содержит режимы, которых нет у простых duplicate file finders;
подходит для ревизии старых Linux-каталогов, архивов и рабочих деревьев.
Минусы:
графическая оболочка построена на старом Python/GTK-стеке;
интерфейс требует понимания Linux-терминов;
часть действий потенциально опасна при массовом выделении;
программа не ищет похожие изображения, похожую музыку и близкие по содержанию документы;
нет современного визуального мастера выбора оставить/удалить;
режимы вроде Bad IDs, Non stripped binaries и Bad symlinks малопонятны без опыта администрирования;
для современных систем чаще удобнее Czkawka, dupeGuru или rmlint;
FSlint не заменяет менеджер пакетов, форматтер кода и утилиты очистки кэшей приложений.
Главное преимущество FSlint — ширина системных проверок внутри одного Linux-инструмента. Главное ограничение — возраст интерфейса и необходимость ручного контроля. Он хорошо показывает проблемы, но не должен использоваться как инструмент для удаления всего найденного без просмотра результатов.
Отзывы пользователей и профильных изданий
FSlint регулярно упоминался в Linux-изданиях и сообществах как полезная, но требующая осторожности утилита. На странице проекта перечислены обзоры Linux Format Hotpick за октябрь 2004, Linuxuser German Edition за май 2005, Linux Journal за март 2007, Linux.com feature за октябрь 2007 и видеодемонстрация за октябрь 2008.

Linux Journal в 2007 году сформулировал двойственную оценку: FSlint полезен как средство поиска и удаления ненужного lint в файловой системе, но интерфейс грубоват, кнопки и параметры местами неочевидны, а справка минимальна. Это точное описание программы: функционально она сильнее многих простых искателей дублей, но новичку требуется время, чтобы понять логику вкладок, режимов и действий.
Linux.com подробно разбирал рабочие режимы FSlint: Duplicates, Installed packages, Bad names, Name clashes, Temp files, Bad symlinks, Bad IDs, Empty directories, Redundant whitespace и Non stripped binaries. В материале подчёркивалось, что при смене режима нужно снова нажимать Find, потому что результаты одного поиска не переносятся автоматически на другой тип проверки.
Пользовательские мнения обычно концентрируются вокруг двух тем: программа хорошо находит дубликаты и помогает увидеть лишние крупные пакеты, но пользоваться ею нужно умеренно. В Linux Mint Community встречается оценка FSlint как excellent duplicate file finder и удобного способа показать установленные пакеты, отсортированные по размеру; там же есть короткие пользовательские отзывы вроде nice app и предупреждение о сдержанном применении.
В обсуждениях новых дистрибутивов часто всплывает другая проблема: FSlint недоступен или сложен для установки из-за старых зависимостей. На форумах Linux Mint пользователи обсуждали замену FSlint после перехода на более новые версии системы, а в Ask Ubuntu и смежных обсуждениях в качестве альтернатив часто называют rmlint, Czkawka и другие duplicate finders.
Усреднённая оценка выглядит так: FSlint ценят за точный локальный поиск дублей, полезные системные проверки и простой принцип найти — показать — дать выбрать. Критикуют за старый интерфейс, неочевидные кнопки, зависимость от устаревших библиотек и необходимость вручную понимать последствия Delete, Merge и Clean.
Сравнение с аналогами
FSlint нужно сравнивать с программами, которые решают близкие задачи: поиск дублей, файловый мусор, пустые директории, битые ссылки и ревизия хранилища. Он не является прямым аналогом универсальных оптимизаторов вроде CCleaner, PrivaZer или HDCleaner, потому что работает с другими типами проблем.
| Программа | Основной сценарий | Интерфейс | Чем отличается от FSlint |
|---|---|---|---|
| FSlint | Поиск дублей и файлового lint в Linux | GUI и CLI | Совмещает несколько Linux-проверок: дубли, bad names, symlinks, UID/GID, empty dirs, whitespace |
| Czkawka | Поиск дублей, пустых папок, похожих изображений и другого мусора | GUI и CLI | Современнее по стеку, написана на Rust, поддерживает Linux, Windows и macOS; сайт FSlint называет её более активно поддерживаемой Rust-реализацией |
| rmlint | Поиск дублей и другого space waste | CLI, есть сторонние GUI-обвязки | Сильнее ориентирован на автоматизацию; ищет duplicate files, nonstripped binaries, broken links, empty files/directories и broken user/group id; генерирует исполняемый вывод для удаления |
| fdupes | Поиск одинаковых файлов в заданных директориях | CLI | Уже по назначению: фокус на дубликатах, без набора проверок FSlint |
| jdupes | Быстрый поиск и действия над дублями | CLI | Поддерживает удаление, linking, symlinking и block-level deduplication; подходит опытным пользователям, которым нужны расширенные действия над дублями |
| dupeGuru | Поиск дублей по имени и содержимому | GUI | Кроссплатформенный GUI-инструмент; умеет fuzzy matching имён и ориентирован на обычного пользователя |
| BleachBit | Очистка кэшей, cookies, логов, временных файлов и следов активности | GUI и CLI | Чистит данные приложений и приватности на Windows/Linux, но не является заменой FSlint для bad symlinks, UID/GID, name clashes и hardlink-сценариев |
| CloneSpy | Поиск дублей на Windows | GUI | Ближе к классическому поиску одинаковых файлов; в каталоге FreeEXE есть отдельная страница CloneSpy |
| Auslogics Duplicate File Finder | Поиск дублей на Windows | GUI | Ориентирован на домашний сценарий удаления одинаковых файлов; смежный материал — Auslogics Duplicate File Finder |
Czkawka лучше подходит тем, кому нужен современный инструмент с активной разработкой и поддержкой нескольких ОС. Она закрывает не только идентичные дубликаты, но и похожие изображения, пустые папки и другие категории мусора. Для пользователя, который пришёл к FSlint именно ради поиска дублей и работает на новом дистрибутиве, Czkawka часто будет практичнее.
rmlint сильнее там, где нужна автоматизация. Он ближе к FSlint по философии: тоже ищет не только дубли, но и другие виды файлового мусора. Разница в том, что rmlint рассчитан на командную строку, отчёты и скрипты. Для администратора большого хранилища это плюс, для новичка — барьер.
fdupes и jdupes уже по назначению. Они не пытаются заменить весь набор FSlint, зато хорошо подходят для конкретной задачи: найти одинаковые файлы. jdupes развивает эту идею дальше и добавляет больше действий над найденными дублями, включая linking и deduplication.

dupeGuru удобнее для пользователей, которым нужен визуальный поиск дублей без Linux-специфики. Его сильная сторона — fuzzy matching имён и кроссплатформенность. Но dupeGuru не заменяет FSlint в задачах проверки UID/GID, symlinks, non-stripped binaries и name clashes.
BleachBit решает соседнюю, но другую задачу. Он удаляет кэши, cookies, логи, временные файлы и следы приложений. FSlint ищет структурные проблемы в выбранных каталогах. Поэтому эти программы не конкурируют напрямую: BleachBit чистит следы приложений, FSlint показывает файловые проблемы.
Практические сценарии использования FSlint
Домашняя папка и каталог загрузок
Самый понятный сценарий — разбор ~/Downloads, ~/Documents, старых папок с архивами и копиями. Здесь FSlint помогает найти повторно скачанные установщики, одинаковые PDF, копии документов, повторяющиеся архивы и временные файлы редакторов.
Лучше проверять не всю домашнюю папку сразу, а отдельные разделы:
| Каталог | Что искать |
|---|---|
Downloads | Повторно скачанные файлы, временные архивы, старые .deb, .tar.gz, .zip |
Documents | Дубли документов, экспортов, отчётов |
Pictures | Только полностью одинаковые изображения |
Desktop | Случайные копии и временные файлы |
| Старые backup-папки | Повторяющиеся архивы и копии проектов |
Для фотографий важно помнить ограничение: FSlint ищет одинаковое содержимое файла. Если одна и та же фотография была пересжата, уменьшена или сохранена с другими метаданными, FSlint не считает её дублем. Для визуально похожих фото лучше использовать Czkawka или dupeGuru.
Архивы и внешние диски
FSlint полезен при разборе старых внешних дисков, где годами копировались одни и те же папки. Типичная ситуация: на диске есть backup-2019, backup-old, documents-copy, flash-drive, phone-export. Внутри лежат одинаковые файлы, но с разными путями.
Правильная стратегия:
подключить диск;
выбрать только папку архива;
запустить Duplicates;
сохранить список через Save;
проверить крупные группы;
удалять только очевидные копии;
отдельно проверить Empty directories после удаления.
Для внешних дисков особенно полезно смотреть Directory в таблице. Именно путь показывает, где находится основная копия, а где случайный дубль.
Перенос данных между файловыми системами
Перед копированием дерева файлов на носитель или в систему с другими правилами имён полезен режим Name clashes. Он показывает одинаковые или конфликтующие имена, включая проблемы регистра. Это снижает риск ситуации, когда при переносе file.txt и File.txt один объект перезаписывает другой или операция завершается ошибкой.
Для подготовки к переносу лучше сочетать несколько проверок:
Bad names — имена с проблемной кодировкой и переносимостью;
Name clashes — конфликты имён;
Bad symlinks — ссылки, которые сломаются или уже сломаны;
Duplicates — одинаковые файлы, которые можно убрать до переноса;
Empty directories — пустые ветки, которые не нужно копировать.
Проверка серверных каталогов
На сервере FSlint удобнее использовать через CLI-инструменты. Bad IDs и findid полезны после восстановления данных из tar-архива или переноса между машинами. Bad symlinks и findbl помогают проверить деревья, где много ссылок на релизы, shared-каталоги или внешние ресурсы. Empty directories и finded показывают пустые ветки после удаления старых данных.
Для серверов нельзя применять массовое удаление без предварительного отчёта. Безопаснее сначала сформировать список, передать его администратору или владельцу сервиса, затем точечно удалить подтверждённые объекты.
Каталоги с исходным кодом
Для исходников полезны Redundant whitespace, Duplicates и Name clashes. Первый режим показывает лишние пробелы и проблемы отступов, второй — случайные копии файлов, третий — имена, которые создадут проблемы при переносе проекта на другую файловую систему.
FSlint не заменяет Git, линтеры, форматтеры и CI. Он работает ниже — на уровне файловой структуры. Его стоит запускать перед упаковкой старого проекта, передачей архива или ревизией каталога, где долго работали без единого стиля.
Что FSlint не делает
FSlint важно не переоценивать. Он не является антивирусом, дефрагментатором, менеджером автозагрузки, системным оптимизатором, редактором реестра, архиватором или полноценным менеджером пакетов. Он не анализирует качество фотографий, не ищет похожие кадры, не сравнивает музыку по звучанию и не определяет, какой файл главный.
FSlint также не решает за пользователя, какие данные можно удалить. Два файла могут быть одинаковыми, но оба нужны: один путь используется приложением, второй — человеком, третий — скриптом. Именно поэтому действия Delete, Merge, Clean и Symlink требуют понимания контекста.
Если задача — очистка кэшей браузеров, cookies, логов приложений и следов активности, лучше смотреть в сторону BleachBit или PrivaZer. Если нужна работа с похожими изображениями, лучше Czkawka или dupeGuru. Если нужен быстрый консольный аудит больших деревьев, удобнее rmlint или jdupes.
Частые вопросы
FSlint подходит только для поиска дубликатов?
Нет. Поиск одинаковых файлов — самый известный режим, но в программе есть проверки bad names, name clashes, temp files, bad symlinks, bad IDs, empty directories, non stripped binaries и redundant whitespace. На уровне командной строки эти задачи разделены между отдельными инструментами findup, findnl, findu8, findbl, findsn, finded, findid, findns, findrs и findtf.
FSlint сравнивает имена или содержимое?
В режиме Duplicates FSlint сравнивает содержимое. Алгоритм исключает файлы с уникальным размером, затем использует MD5 первых 4 КБ, MD5 всего файла и SHA1 всего файла. Поэтому файлы с разными именами, но одинаковым содержимым попадают в одну группу.
Можно ли удалить всё найденное?
Нет. Найденный объект не всегда является ненужным. Дубликат может быть частью резервной копии, проекта, синхронизации или набора ссылок. Пустая директория может требоваться приложению. Символическая ссылка может быть сломана только потому, что не подключён нужный диск. FSlint помогает найти кандидатов, а решение остаётся за пользователем.
Чем Delete отличается от Merge?
Delete удаляет выбранные элементы. Merge предназначен для объединения дублей через hard links или symlinks, чтобы убрать физическое дублирование, сохранив доступ по нескольким путям. В интерфейсе FSlint действие Merge описано как объединение всех копий, кроме выбранной, через hardlinks или symlinks при разных файловых системах.
Что делает Clean?
Clean применяется в режимах, где найденный объект можно исправить, а не просто удалить. Самый понятный пример — Redundant whitespace: после поиска лишних пробелов и проблем отступов Clean очищает выбранные файлы от найденных пробельных проблем.
Есть ли русская локализация?
Да. В истории версии 2.24 зафиксировано добавление Russian, а набор скриншотов FSlint содержит русскоязычный интерфейс FSlint 2.24.
Почему FSlint долго ищет дубликаты?
Поиск дублей требует чтения файлов и расчёта хешей. FSlint оптимизирует процесс: сначала отбрасывает уникальные размеры, затем проверяет частичный MD5, потом полный MD5 и SHA1. Но на больших архивах, внешних дисках, сетевых ресурсах и каталогах с крупными файлами операция всё равно может занимать много времени.
Чем FSlint отличается от fdupes?
fdupes фокусируется на поиске duplicate files в указанных директориях. FSlint шире: кроме дублей, он проверяет имена, symlinks, empty directories, IDs, non-stripped binaries и whitespace. Поэтому fdupes удобнее для одной консольной задачи, а FSlint — для ревизии файловой системы.
Чем заменить FSlint на современных системах?
Для современного GUI ближе всего Czkawka и dupeGuru. Для консольной автоматизации — rmlint, fdupes и jdupes. Czkawka особенно близка по идее, потому что сайт FSlint называет её Rust-реализацией, которая активнее поддерживается и проще устанавливается в современных системах.
Итог
FSlint остаётся интересной Linux-утилитой не потому, что у неё современный интерфейс, а потому, что она закрывает сразу несколько практических задач файловой ревизии. Она ищет одинаковые файлы, пустые директории, временные объекты, битые symlinks, проблемные имена, отсутствующие UID/GID, non-stripped binaries и лишние пробелы. Такой набор редко встречается в простых программах для удаления дублей.
Для разовой очистки домашней папки FSlint подходит, если пользователь готов просматривать группы результатов и не нажимать Delete без проверки. Для старых архивов и внешних дисков программа полезна как локальный поиск дубликатов файлов Linux с сохранением списка. Для администраторов ценнее режимы Bad symlinks, Bad IDs, Empty directories и CLI-инструменты. Для разработчиков отдельный интерес представляет Redundant whitespace.
Главное ограничение FSlint — возраст программы и старый стек GUI. На современных системах для обычного поиска дублей часто удобнее Czkawka или dupeGuru, для автоматизации — rmlint или jdupes. Но если нужен именно классический Linux-инструмент, который показывает файловый мусор шире, чем простые duplicate file finders, FSlint остаётся понятным и функционально насыщенным решением.
Список изменений
История версий:
- FSlint развивался как набор небольших командных инструментов, а затем получил графическую оболочку. История хорошо показывает, почему программа устроена именно так: сначала появились проверки файловой системы, затем GUI, затем локализации, улучшения выделения, обработка сложных имён и защита от ошибок.
- Эта история показывает две важные вещи. Во-первых, FSlint долго развивался как практичный инструмент для реальных файловых проблем: имена, ссылки, дубли, UID/GID, whitespace, пакеты, пустые директории. Во-вторых, многие изменения связаны не с добавлением эффектных функций, а с обработкой сложных путей, пробелов, локалей, hard links, symlinks и больших списков. Для файловой утилиты это важнее внешнего вида.


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