FSlint — набор утилит для наведения порядка в файловой системе: он находит дублирующиеся файлы, пустые каталоги, временные хвосты, проблемные имена, битые символические ссылки и другие типичные «следы» повседневной работы. У программы есть графическая оболочка на GTK+ и набор консольных инструментов, которые соответствуют вкладкам в интерфейсе.

Главная ценность FSlint в том, что он решает задачу «одним окном»: добавили пути в область поиска, включили рекурсивный обход, выбрали тип проверки слева и нажали Find. Дальше работает привычная схема: результаты собираются в списке, вы отмечаете элементы и применяете действие (Delete, Merge, Save, а в отдельных модулях — Clean).

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

Скачать FSlint

Ускоритель Компьютера
Оценка 9.6 Рекомендуем
  • Поиск дубликатов 70% быстрее
  • Надежный российский разработчик
  • Подходит начинающим пользователям
Скачать бесплатно на Windows
Лучшая альтернатива для новичков
FSlint
Оценка 8.9
  • Полный функционал в платной версии
  • Нет совместимости с Windows
  • Интерфейс труден для новичков
Скачать FSlint
Загрузка начнётся сразу после нажатия

1) Назначение и сценарии использования

FSlint закрывает несколько бытовых и полупрофессиональных сценариев:

  • Удаление дубликатов файлов в Linux в папках «Загрузки», «Документы», в медиатеке, на внешнем накопителе.

  • Поиск одинаковых файлов при миграции данных между дисками и после «слияния» резервных копий.

  • Поиск пустых папок и удаление пустых каталогов, которые остаются после ручных перемещений, распаковок архивов и удаления программ.

  • Поиск временных файлов и очистка временных файлов (редакторы, резервные копии с тильдой, swap-следы, core-файлы).

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

  • Контроль «гигиены» имён: поиск проблемных имён, проверка переносимости (вплоть до строгих POSIX-ограничений).

  • Точечные проверки для разработчиков и администраторов: не stripped-бинарники, пробельные ошибки в текстовых файлах, файлы с некорректными UID/GID.

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


2) Совместимость, состояние проекта и практические ограничения

FSlint исторически опирается на старые GTK/Python-биндинги (PyGTK 2). Из-за этого пакет в ряде современных репозиториев отсутствует или устанавливается с оговорками: на Debian testing FSlint убрали как раз из-за зависимости от устаревших и больше не поддерживаемых pygtk-библиотек.

На практике это даёт два последствия:

  1. На «свежих» дистрибутивах графический интерфейс встречает проблемы с зависимостями python-gtk2/python-glade2 или аналогами (особенно в ветках, где Python 2 давно вычистили).

  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. Тут сосредоточено два ключевых блока:

  1. Paths to exclude — список исключений (папки и шаблоны файлов), которые FSlint не трогает. Управление типичное: Add добавляет правило, Remove убирает. У FSlint уже есть набор исключений по умолчанию, рассчитанный на то, чтобы не лезть в места, которыми «не принято» управлять таким инструментом без особой причины.

  2. 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:

  1. На вкладке Search path добавьте одну или несколько директорий, которые участвуют в анализе содержимого папок.

  2. Включите recurse?, когда нужно пройти вложенные каталоги.

  3. Откройте слева Duplicates.

  4. Нажмите Find.

  5. В результатах используйте SelectWithin groupsSelect all but newest (или Select all but oldest, зависит от логики хранения).

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

  7. Нажмите 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. Как безопасно проводить удаление битых ссылок

Рабочий порядок здесь такой:

  1. Запускаете Bad SymlinksFind.

  2. Сортируете/фильтруете выдачу: сначала Dangling (они почти всегда мусор).

  3. Используете Select для массового выделения.

  4. При необходимости сохраняете список через Save.

  5. Удаляете 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 обычно содержит:

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

  • архивы, которые уже распакованы,

  • старые инсталляторы,

  • временные файлы редакторов.

Рабочая связка:

  1. Search path → добавьте ~/Downloads

  2. включите recurse?

  3. DuplicatesFindSelect all but newestDelete

  4. Temp Files → поставьте минимальный возраст (например, 7–14 дней) → FindDelete

  5. Empty DirectoriesFindDelete

Эта последовательность почти всегда даёт заметное освобождение места на диске без глубокого погружения.

16.2. Медиатека фото/видео: аккуратная дедупликация

Для дедупликации фотоархива важна осторожность: многие редакторы создают копии с тем же содержимым, но с разными метаданными или в разных каталогах «экспорт/оригинал».

Безопасная схема:

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

  • затем пройдите Name Clashes режимом Ignore case, чтобы убрать конфликты при переносе на другие файловые системы,

  • финально — Empty Directories.

Так вы получаете экономию места, но не ломаете привычные пути для каталогов, которые используются программами.

16.3. Внешний диск и резервные копии

На внешних накопителях часто образуются:

  • одинаковые папки, скопированные несколько раз,

  • конфликты регистра (Photo vs photo),

  • битые симлинки после переносов.

Здесь FSlint особенно хорошо раскрывается как «пакетная ревизия»:

  1. Duplicates для основного объёма,

  2. Bad Symlinks для чистки «висяков»,

  3. Name Clashes для конфликтов регистра,

  4. Empty Directories как финальный проход.


17) Сильные стороны и типичные ошибки пользователей

17.1. Что в FSlint сделано удачно

  • Единая логика работы: Search path → выбор проверки → Find → работа с результатами.

  • Сильная часть в Duplicates: группировка, массовое выделение, Merge вместо удаления.

  • Гибкая фильтрация через Advanced search parameters, включая Paths to exclude и Extra find parameters.

17.2. Где чаще всего ошибаются

  1. Сканируют слишком широко (добавляют корень / и включают recurse?).

  2. Не настраивают исключения в Paths to exclude, из-за чего в результатах появляются служебные деревья, кеши и прочие «сложные зоны».

  3. Жмут Delete без логики выбора: в дубликатах важно понимать, какой экземпляр остаётся (по времени, по каталогу, по роли).

  4. Лезут в $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 удаляет файлы «напрямую», без внутренней корзины; требуется дисциплина работы со списком и проверка выделений.

  • Инструменты уровня $PATHName Clashes, Non Stripped Binaries) требуют повышенной осторожности и понимания последствий.


20) Итог: кому подходит FSlint и как выжать максимум пользы

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

Самая надёжная модель использования выглядит так:

  1. Узко задать область в Search path, включить recurse? только там, где нужен глубокий обход.

  2. Настроить Paths to exclude в Advanced search parameters.

  3. Пройти DuplicatesTemp FilesBad SymlinksEmpty Directories.

  4. Использовать Save для фиксации списков и отчётов.

  5. $PATH-режимы трогать только в задачах, где они действительно нужны.

Аналоги для FSlint (File System Lint)

Для Linux
Инструменты для диска