Gofis — это лёгковесный инструмент командной строки для быстрого поиска файлов в файловой системе.
Он написан на языке Go и активно использует параллелизм (goroutines), что делает его особенно эффективным
при работе с большими директориями и проектами.
Проект доступен на GitHub:
https://github.com/demensdeum/gofis
🧠 Что такое Gofis
Gofis — это CLI-утилита для поиска файлов по имени, расширению или регулярному выражению.
В отличие от классических инструментов вроде find, gofis изначально проектировался
с упором на скорость, читаемый вывод и параллельную обработку каталогов.
Проект распространяется под лицензией MIT и может свободно использоваться
в личных и коммерческих целях.
⚙️ Ключевые возможности
- Параллельный обход директорий с помощью goroutines
- Поиск по имени файла и регулярным выражениям
- Фильтрация по расширениям
- Игнорирование тяжёлых директорий (.git, node_modules, vendor)
- Человекочитаемый вывод размеров файлов
- Минимальные зависимости и быстрая сборка
🚀 Установка
Для работы требуется установленный Go.
git clone https://github.com/demensdeum/gofis
cd gofis
go build -o gofis main.go
После сборки бинарный файл можно использовать напрямую.
Также на странице релизов есть автономная версия для современных версий Windows:
https://github.com/demensdeum/gofis/releases/
🔍 Примеры использования
Поиск файлов по имени:
./gofis -n "config" -e ".yaml" -p ./src
Быстрый позиционный поиск:
./gofis "main" "./projects" 50
Поиск с использованием регулярного выражения:
./gofis "^.*\.ini$" "/"
🧩 Как это работает
В основе gofis лежит конкурентная модель Go:
- Каждая директория обрабатывается в отдельной goroutine
- Используется семафор для ограничения количества активных задач
- Каналы применяются для передачи результатов поиска
Такой подход позволяет эффективно использовать ресурсы CPU
и значительно ускоряет поиск на больших файловых деревьях.
👨💻 Кому подойдёт Gofis
- Разработчикам, работающим с крупными репозиториями
- DevOps и системным администраторам
- Пользователям, которым нужен быстрый поиск из терминала
- Тем, кто изучает практическое применение concurrency в Go
📌 Заключение
Gofis — это простой, но эффективный инструмент, который делает одну задачу и делает её хорошо.
Если вы часто ищете файлы в больших проектах и цените скорость,
этот CLI-инструмент определённо заслуживает внимания.