FSlint — набор утилит для наведения порядка в файловой системе: он находит дублирующиеся файлы, пустые каталоги, временные хвосты, проблемные имена, битые символические ссылки и другие типичные «следы» повседневной работы. У программы есть графическая оболочка на GTK+ и набор консольных инструментов, которые соответствуют вкладкам в интерфейсе.
Главная ценность FSlint в том, что он решает задачу «одним окном»: добавили пути в область поиска, включили рекурсивный обход, выбрали тип проверки слева и нажали Find. Дальше работает привычная схема: результаты собираются в списке, вы отмечаете элементы и применяете действие (Delete, Merge, Save, а в отдельных модулях — Clean).
Ниже — максимально детальный разбор того, как устроена программа, какие именно элементы интерфейса отвечают за конкретные операции, и как безопасно использовать FSlint для освобождения места на диске без неприятных сюрпризов.
Скачать FSlint
- Поиск дубликатов 70% быстрее
- Надежный российский разработчик
- Подходит начинающим пользователям
- Полный функционал в платной версии
- Нет совместимости с Windows
- Интерфейс труден для новичков
1) Назначение и сценарии использования

FSlint закрывает несколько бытовых и полупрофессиональных сценариев:
-
Удаление дубликатов файлов в Linux в папках «Загрузки», «Документы», в медиатеке, на внешнем накопителе.
-
Поиск одинаковых файлов при миграции данных между дисками и после «слияния» резервных копий.
-
Поиск пустых папок и удаление пустых каталогов, которые остаются после ручных перемещений, распаковок архивов и удаления программ.
-
Поиск временных файлов и очистка временных файлов (редакторы, резервные копии с тильдой, swap-следы, core-файлы).
-
Поиск битых ссылок и удаление битых ссылок после переименований каталогов, обновлений или чистки вручную.
-
Контроль «гигиены» имён: поиск проблемных имён, проверка переносимости (вплоть до строгих POSIX-ограничений).
-
Точечные проверки для разработчиков и администраторов: не stripped-бинарники, пробельные ошибки в текстовых файлах, файлы с некорректными UID/GID.
FSlint для Linux особенно удобен в ситуациях, где нужна не одна узкая функция, а последовательность работ: сначала удалить дубли, затем подчистить временные хвосты и пустые папки, а в конце пройтись по битым ссылкам и конфликтам имён.
2) Совместимость, состояние проекта и практические ограничения
FSlint исторически опирается на старые GTK/Python-биндинги (PyGTK 2). Из-за этого пакет в ряде современных репозиториев отсутствует или устанавливается с оговорками: на Debian testing FSlint убрали как раз из-за зависимости от устаревших и больше не поддерживаемых pygtk-библиотек.
На практике это даёт два последствия:
-
На «свежих» дистрибутивах графический интерфейс встречает проблемы с зависимостями
python-gtk2/python-glade2или аналогами (особенно в ветках, где Python 2 давно вычистили). -
На LTS/старых сборках FSlint ставится проще, и GUI обычно работает «из коробки», потому что нужные пакеты ещё доступны.
В обзоре ниже логика работы и элементы интерфейса описаны на уровне самой программы. Там, где речь касается установки, я даю варианты, которые реально встречаются в дистрибутивах, и отдельно отмечаю «узкие места».
3) Установка и запуск: типовые команды и входные точки
3.1. Запуск графической оболочки
Графический интерфейс запускается командой:
fslint-gui
Эта точка входа часто дублируется пунктом меню в разделе утилит/администрирования (зависит от окружения рабочего стола).
3.2. Установка из репозиториев (классический сценарий)
В дистрибутивах, где пакет присутствует, он ставится обычной командой пакетного менеджера. Часто встречается:
sudo apt-get install fslint
Дальше GUI доступен через fslint-gui.
3.3. Реальность современных репозиториев
В ветках, где Python 2/GTK2 удалены, установка упирается в зависимости уровня python-gtk2/python-glade2. Это не «редкая поломка», а системная история для актуальных сборок ряда дистрибутивов.
4) Архитектура FSlint: GUI как «панель управления» над набором утилит
FSlint устроен как набор инструментов, каждый из которых отвечает за свою категорию «lint». В графическом интерфейсе это оформлено как список вкладок/разделов слева (например, Duplicates, Bad Names, Temp Files), а на уровне консоли — как отдельные команды (findup, findnl, findtf и т. д.).
Для удобства — сводная таблица соответствий.
| Раздел в GUI | Что делает | Консольная утилита |
|---|---|---|
Duplicates |
Находит дубликаты по содержимому | findup |
Bad Names |
Ищет проблемные имена + проверка UTF-8 | findnl, findu8 |
Name Clashes |
Ищет конфликты/дубликаты имён, алиасы | findsn |
Temp Files |
Ищет временные файлы и core-следы | findtf |
Bad Symlinks |
Ищет «плохие» симлинки (dangling/suspect/…) | findbl |
Bad ID's |
Ищет файлы с неизвестными UID/GID | findid |
Empty Directories |
Ищет пустые каталоги | finded |
Non Stripped Binaries |
Находит не stripped-бинарники, умеет «чистить» | findns |
Redundant Whitespaces |
Анализирует пробелы/табы в текстах, умеет Clean |
(в GUI; в наборе есть инструменты по теме) |
5) Главное окно и «скелет» управления: где в интерфейсе живут ключевые действия

5.1. Вкладка Search path: что именно сканируется
При старте первое, на что обращают внимание — вкладка Search path. Она отвечает за то, какие каталоги участвуют в проверке. Здесь находится список путей и типовые кнопки добавления/удаления элементов (в большинстве сборок они подписаны как Add и Remove или представлены пиктограммами с тем же смыслом). По умолчанию FSlint подставляет каталог, из которого он запущен; при запуске из меню это обычно домашняя директория вида /home/<USER>.
Критически важный переключатель в этой зоне — чекбокс recurse?. Он управляет глубиной обхода:
-
recurse?выключен — сканируется только указанный каталог верхнего уровня; -
recurse?включён — обход идёт во все вложенные папки.
На практике recurse? — это разница между «быстро проверить одну папку» и «нормально прочесать весь диск».
5.2. Вкладка Advanced search parameters: исключения и тонкая настройка
Вторая системная вкладка — Advanced search parameters. Тут сосредоточено два ключевых блока:
-
Paths to exclude— список исключений (папки и шаблоны файлов), которые FSlint не трогает. Управление типичное:Addдобавляет правило,Removeубирает. У FSlint уже есть набор исключений по умолчанию, рассчитанный на то, чтобы не лезть в места, которыми «не принято» управлять таким инструментом без особой причины. -
Extra find parameters— поле для дополнительных параметров на базе Linux-командыfind. Это пространство для продвинутой фильтрации (по владельцу, размеру, типу и т. п.).
Практический смысл этой вкладки: она делает FSlint очистка диска управляемой. С ней не приходится потом разгребать результаты, в которые попали кеши браузеров, каталоги сборок или служебные директории проектов.
5.3. Универсальные кнопки: Find, Select, Save, Delete, Merge
В нижней части окна (и/или рядом с результатами) повторяются одни и те же управляющие элементы:
-
Find— запускает поиск по выбранному модулю после того, как настроеныSearch pathи параметры поиска. -
Select— открывает меню массового выделения в списке результатов. Там есть режимыSelect using wildcardиUnselect using wildcard, а также действия «внутри групп»:Select all but first,Select all but newest,Select all but oldest. -
Save— сохраняет список выделенных элементов в файл. В выгрузке сохраняются полные пути, что удобно для отчёта и дальнейшей обработки. -
Delete— удаляет выбранные элементы. Перед удалением появляется подтверждение; в окне подтверждения есть чекбоксAsk me this in the future?, который отключает повторные вопросы. Удаление выполняется как постоянное (без «корзины» внутри FSlint). -
Merge— ключевая фишка в модуле дубликатов: он не удаляет файлы, а объединяет дубликаты в одну физическую сущность с помощью hardlink, а при переходе между файловыми системами — через symlink. Это освобождает место, но сохраняет «видимость» файлов в разных местах.
6) Раздел Duplicates: самый популярный инструмент FSlint
6.1. Что именно FSlint считает «дубликатом»
В Duplicates FSlint делает не «поверхностное сравнение по имени», а сравнение, ориентированное на содержимое. Алгоритм фильтрует файлы по размеру, затем исключает hardlink-случаи и проверяет сигнатуры: сначала через md5sum, а затем повторно через sha1sum для защиты от редких коллизий.
Это важный момент: FSlint поиск дубликатов построен так, чтобы минимизировать ложные совпадения и не превращать чистку в лотерею.
6.2. Как выглядит результат: группы и «сколько места потеряно»
После нажатия Find программа строит выдачу группами: каждая группа отделяется серой полосой, где видно, сколько файлов внутри и сколько байт «потрачено» на дубли. Ниже идут конкретные файлы, обычно с колонками вроде имени, каталога и даты последней модификации.
Внизу под Find FSlint показывает итоговую статистику: общий объём «лишних» байт, число файлов и число групп. Это удобно для грубой оценки экономии ещё до удаления.
6.3. Массовое выделение: правильная схема «оставить один, удалить остальное»
Типовой рабочий процесс в Duplicates:
-
На вкладке
Search pathдобавьте одну или несколько директорий, которые участвуют в анализе содержимого папок. -
Включите
recurse?, когда нужно пройти вложенные каталоги. -
Откройте слева
Duplicates. -
Нажмите
Find. -
В результатах используйте
Select→Within groups→Select all but newest(илиSelect all but oldest, зависит от логики хранения). -
Проверьте, что в каждой группе остаётся один файл без выделения (тот, который сохранится).
-
Нажмите
Delete.
В этой схеме важны две детали:
-
Select all but firstполезен, когда в группе порядок уже соответствует вашей логике (например, «первый файл — это оригинал»), и вы его придерживаетесь. -
Перед
DeleteудобенSave: он фиксирует список выбранного на случай, когда нужен отчёт, или требуется восстановить решение «что удалялось».
6.4. Merge вместо удаления: дедупликация без потери «видимости» файлов
Когда дубликаты нужны в разных местах (например, проект ожидает файл по конкретному пути, а пользователь держит копию в медиатеке), вместо удаления используется Merge. Этот режим объединяет группу в один физический файл и раздаёт ссылки (hardlink или symlink). Место освобождается, а пути остаются рабочими.
Это особенно полезно для дедупликация фотоархива и больших коллекций, где дубликаты часто возникают от импорта «одних и тех же» исходников разными программами.
6.5. Контекстное меню: быстрые действия с найденными файлами
В списке дубликатов у FSlint есть контекстное меню: оно позволяет открыть файл, скопировать или переименовать. Открытие выполняется через xdg-open, поэтому файл подхватывается стандартным приложением системы.
7) Bad Names: проблемные имена файлов и переносимость
Раздел Bad Names ориентирован не на экономию места, а на практическую совместимость: перенос на флешки, копирование на файловые системы с ограничениями, синхронизация в облако, работа в смешанной среде.
7.1. Управляющие элементы в Bad Names
В верхней части Bad Names расположен ползунок чувствительности. Он задаёт строгость проверки: от мягкого уровня до строгой POSIX-проверки. Рядом с ползунком находится чекбокс включения проверки UTF-8.
В этом модуле обычно работают так:
-
поднимают уровень строгости до нужного,
-
включают UTF-8-контроль,
-
запускают
Find, -
по результатам принимают решение о переименовании.
7.2. Почему это реально полезно
Проблемные имена чаще всего всплывают на экспорте медиатеки или документов на устройства/файловые системы, которые не дружат с «экзотическими» символами, либо по-своему трактуют кодировки. Bad Names даёт быстрый список мест, где переносимость ломается.
8) Name Clashes: одинаковые имена, конфликт регистра и алиасы

Name Clashes — отдельный взгляд на «дубликаты», но уже по именам, а не по содержимому. Этот модуль полезен, когда требуется собрать дерево файлов в плоскую структуру или подготовить перенос на нечувствительную к регистру файловую систему.
8.1. Режим Search $PATH и выпадающий список
В верхней части есть чекбокс Search $PATH. При его включении поиск идёт по путям из переменной окружения $PATH. Дальше выбирается режим в выпадающем списке:
-
Conflicting files— поиск конфликтующих имён в$PATH -
Aliases— поиск алиасов в$PATH
Этот режим требует аккуратности: $PATH содержит системно значимые каталоги.
8.2. Поиск по вашим каталогам: четыре режима в выпадающем списке
Когда Search $PATH выключен, FSlint проверяет пути из Search path и предлагает четыре режима:
-
Case conflicts— имена отличаются только регистром -
Same names— одинаковые имена в разных каталогах -
Ignore case— одинаковые имена без учёта регистра -
Aliases— алиасы (soft/hard link)
Эта часть прямо помогает при наведении порядка в коллекциях и при массовых переносах. Например, при чистка внешнего диска после долгого использования под разными ОС часто всплывают File.txt и file.txt в соседних папках.
9) Temp Files: временные следы и core-файлы
Temp Files — один из самых «понятных» разделов: он показывает то, что обычно копится незаметно.
9.1. Минимальный возраст и логика отбора
В интерфейсе есть параметр минимального возраста: он позволяет находить только те временные файлы, которые старше заданного количества дней. При значении 0 попадают все временные файлы без фильтра по возрасту.
Это важно для сценария «не мешать текущей работе»: свежие временные файлы часто принадлежат активным приложениям, а старые — почти всегда мусор.
9.2. Режим core file mode?
В Temp Files есть чекбокс core file mode?. Он включает более тщательный поиск core-файлов (дампов) — типичного следа аварийных завершений. В текстовом описании модуля отдельно подчёркнуто, что core-файлы часто имеют вид core.#####, а проверка идёт глубже, чем простое сопоставление имени.
В практической работе core file mode? полезен на рабочих станциях разработчиков и на машинах, где иногда падают тяжёлые приложения: такие дампы быстро съедают гигабайты.
10) Bad Symlinks: dangling, suspect, relative, absolute, redundant
Раздел Bad Symlinks находит проблемные символические ссылки и группирует их по типам. FSlint делает именно отчёт: он показывает найденное и даёт возможность принять решение.
10.1. Какие типы ссылок показывает FSlint
В описании модуля выделены пять категорий:
-
Dangling — ссылка указывает на объект, которого больше нет.
-
Suspect — ссылка указывает «внутрь» поддерева ниже своего расположения.
-
Relative — относительная ссылка, зависящая от текущего расположения.
-
Absolute — абсолютная ссылка на полный путь.
-
Redundant — ссылка с бессмысленными переходами (
../,./, лишние сегменты), которые усложняют путь без пользы.
10.2. Как безопасно проводить удаление битых ссылок
Рабочий порядок здесь такой:
-
Запускаете
Bad Symlinks→Find. -
Сортируете/фильтруете выдачу: сначала
Dangling(они почти всегда мусор). -
Используете
Selectдля массового выделения. -
При необходимости сохраняете список через
Save. -
Удаляете
Delete.
При таком подходе поиск битых ссылок превращается в стабильную процедуру «проверил → выгрузил отчёт → удалил лишнее», без ручного брожения по дереву каталогов.
11) Bad ID's: файлы с неизвестными UID/GID
Bad ID's полезен в двух случаях:
-
перенос данных между системами, где UID/GID различаются,
-
распаковка архивов, собранных на другой машине, с сохранением владельцев.
FSlint показывает элементы, у которых UID или GID не сопоставляются пользователям/группам текущей системы.
В старых версиях встречалась проблема именно в графической оболочке (при рабочем CLI), и в документации отмечено исправление начиная с FSlint 2.42.
12) Empty Directories: пустые каталоги
Empty Directories делает ровно то, что обещает: находит пустые каталоги внутри области Search path.
Это раздел, который удобно прогонять после крупных чисток:
-
вы удалили дубликаты,
-
подчистили временные файлы,
-
убрали битые ссылки,
-
и в дереве остались пустые «карманы».
Поиск пустых папок после этого даёт аккуратный финальный штрих: структура становится чище, навигация быстрее, а визуальный шум снижается.
13) Non Stripped Binaries: где применяется и как работает Clean
Этот модуль ориентирован на разработчиков и администраторов. Он находит исполняемые файлы, которые содержат отладочную информацию и занимают больше места.
13.1. Чекбокс Search $PATH и действие Clean
В интерфейсе присутствует чекбокс Search $PATH: он включает проверку путей из $PATH. Если находки есть, их можно выделить и применить кнопку Clean, которая удаляет отладочную информацию (stripping). В документации отдельно подчёркнут риск: повреждение системы при неосторожных действиях.
Этот раздел применяют точечно: он не относится к «чистка домашней папки», зато отлично подходит для ситуаций, где вручную собирались бинарники и нужно быстро оценить, где лежат тяжёлые debug-сборки.
14) Redundant Whitespaces: контроль пробелов, табов и автоисправление

Redundant Whitespaces — раздел, который внезапно полезен не только программистам, но и всем, кто работает с текстовыми файлами, конфигами, скриптами и разметкой.
В интерфейсе есть:
-
чекбокс
bad indenting for indent width— проверка отступов на заданную ширину, -
чекбокс
whitespace at end of line— поиск пробелов в конце строк, -
кнопка
Clean— попытка автоматически исправить найденные проблемы в выбранных файлах.
15) Консольные утилиты: когда GUI уже мало
Хотя большинство пользователей остаются в fslint-gui, консольная часть часто решает задачу быстрее:
-
findup— поиск дубликатов, плюс режимы автоматического-m(merge) и-d(delete) в CLI-сценариях. -
findtf— поиск временных файлов с--age=daysи-cдля core-режима. -
findbl— bad symlinks -
findid— bad ids -
finded— пустые каталоги -
findnl/findu8— проблемные имена -
findsn— конфликты имён и алиасы
С практической точки зрения консольный режим удобен для автоматизации и для больших объёмов: там, где GUI-список уже тяжело вручную «прокликивать».
16) Практические кейсы: как применять FSlint в реальной системе
16.1. Чистка каталога загрузок: быстрый выигрыш по месту
Каталог Downloads обычно содержит:
-
повторные скачивания одного и того же,
-
архивы, которые уже распакованы,
-
старые инсталляторы,
-
временные файлы редакторов.
Рабочая связка:
-
Search path→ добавьте~/Downloads -
включите
recurse? -
Duplicates→Find→Select all but newest→Delete -
Temp Files→ поставьте минимальный возраст (например, 7–14 дней) →Find→Delete -
Empty Directories→Find→Delete
Эта последовательность почти всегда даёт заметное освобождение места на диске без глубокого погружения.
16.2. Медиатека фото/видео: аккуратная дедупликация
Для дедупликации фотоархива важна осторожность: многие редакторы создают копии с тем же содержимым, но с разными метаданными или в разных каталогах «экспорт/оригинал».
Безопасная схема:
-
сначала используйте
Duplicatesи начните не с удаления, а сMergeдля групп, где дубликаты обязаны остаться в нескольких местах, -
затем пройдите
Name ClashesрежимомIgnore case, чтобы убрать конфликты при переносе на другие файловые системы, -
финально —
Empty Directories.
Так вы получаете экономию места, но не ломаете привычные пути для каталогов, которые используются программами.
16.3. Внешний диск и резервные копии
На внешних накопителях часто образуются:
-
одинаковые папки, скопированные несколько раз,
-
конфликты регистра (
Photovsphoto), -
битые симлинки после переносов.
Здесь FSlint особенно хорошо раскрывается как «пакетная ревизия»:
-
Duplicatesдля основного объёма, -
Bad Symlinksдля чистки «висяков», -
Name Clashesдля конфликтов регистра, -
Empty Directoriesкак финальный проход.
17) Сильные стороны и типичные ошибки пользователей
17.1. Что в FSlint сделано удачно
-
Единая логика работы:
Search path→ выбор проверки →Find→ работа с результатами. -
Сильная часть в
Duplicates: группировка, массовое выделение,Mergeвместо удаления. -
Гибкая фильтрация через
Advanced search parameters, включаяPaths to excludeиExtra find parameters.
17.2. Где чаще всего ошибаются
-
Сканируют слишком широко (добавляют корень
/и включаютrecurse?). -
Не настраивают исключения в
Paths to exclude, из-за чего в результатах появляются служебные деревья, кеши и прочие «сложные зоны». -
Жмут
Deleteбез логики выбора: в дубликатах важно понимать, какой экземпляр остаётся (по времени, по каталогу, по роли). -
Лезут в
$PATHбез необходимости вName ClashesиNon Stripped Binaries.
18) Сравнение с альтернативами
FSlint — «комбайн» старой школы: много проверок, единый интерфейс, простая модель действий. Альтернативы часто делятся на два типа:
-
специализированные дедупликаторы (быстрее, современнее, с развитой визуализацией),
-
современные «чистильщики» с акцентом на GUI/интеграцию.
Ключевой аргумент в пользу FSlint — понятные операции Select/Delete/Merge и наличие тематических модулей вроде Name Clashes, Bad Symlinks, Redundant Whitespaces, которые редко собирают в одном окне.
19) Плюсы и минусы
Плюсы
-
Много инструментов в одном пакете: дубликаты, временные файлы, пустые каталоги, конфликты имён, битые ссылки и т. д.
-
Прозрачная схема работы:
Search path+recurse?+Find+ действия над результатом. -
Удобная массовая обработка результатов через
Selectи режимыSelect all but .... -
Mergeкак безопасная альтернатива удалению дубликатов (экономит место и сохраняет пути). -
Наличие CLI-утилит под основные вкладки GUI, что упрощает админские сценарии.
Минусы
-
Зависимость от устаревших GTK/Python-компонентов: пакет отсутствует в части современных репозиториев, а установка часто упирается в старые зависимости.
-
Действие
Deleteудаляет файлы «напрямую», без внутренней корзины; требуется дисциплина работы со списком и проверка выделений. -
Инструменты уровня
$PATH(вName Clashes,Non Stripped Binaries) требуют повышенной осторожности и понимания последствий.
20) Итог: кому подходит FSlint и как выжать максимум пользы

FSlint — практичный инструмент для тех, кто хочет быстро навести порядок в файловой системе и получить управляемый результат: найти дубликаты, подчистить временные хвосты, убрать пустые каталоги, проверить битые ссылки и конфликты имён. Он отлично ложится на регулярное обслуживание пользовательских каталогов и внешних дисков, а Merge добавляет сильный «профессиональный» сценарий — экономию места без разрушения путей.
Самая надёжная модель использования выглядит так:
-
Узко задать область в
Search path, включитьrecurse?только там, где нужен глубокий обход. -
Настроить
Paths to excludeвAdvanced search parameters. -
Пройти
Duplicates→Temp Files→Bad Symlinks→Empty Directories. -
Использовать
Saveдля фиксации списков и отчётов. -
$PATH-режимы трогать только в задачах, где они действительно нужны.