Кроссплатформенный терминал с OpenGL-ускорением на GPU, который использует другие инструменты, например tmux, для вкладок и разделения окон.
tavianator/bfs
Вариант UNIX-команды find с обходом в ширину: сначала выводит файлы из неглубоких каталогов и совместим с POSIX-, BSD- и GNU-версиями find.
- Звёзды
- 1,282
- Форки
- 44
- Открытые issues
- 15
- Последний коммит
- 9 дней назад
Что это?
bfs — вариант UNIX-команды find, который обходит дерево каталогов в ширину, а не в глубину. Он выводит файлы от самых неглубоких к самым глубоким, поэтому не приходится ждать, пока он пройдёт не связанное с поиском глубокое поддерево, прежде чем доберётся до нужного файла.
bfs стремится к совместимости со многими версиями find, включая POSIX, GNU, FreeBSD, OpenBSD, NetBSD и macOS. Кроме того, он упрощает частые задачи: аргументы можно указывать в любом порядке, при опечатках в параметрах предлагаются исправления, а статический анализатор предупреждает о выражениях, результаты которых игнорируются. Также добавлены оператор -exclude, пропускающий целые поддеревья, и -nohidden для пропуска скрытых файлов.
bfs написан на C, доступен во многих пакетных менеджерах Linux, macOS и BSD и собирается с помощью configure и make. Дополнительные возможности можно включить, установив необязательные системные библиотеки, такие как ACL, attr, libcap, liburing и oniguruma.
Ключевые возможности
- 01Обходит дерево в ширину, поэтому файлы в неглубоких каталогах выводятся раньше, чем содержимое глубоких поддеревьев.
- 02Позволяет указывать параметры и выражения в произвольном порядке, в отличие от строгого синтаксиса find.
- 03Предлагает исправления для аргументов с опечатками.
- 04Предупреждает о выражениях, результаты которых игнорируются.
- 05Позволяет пропускать целые поддеревья с помощью -exclude, а скрытые файлы — с помощью -nohidden.
Сценарии использования
- Поиск файла в большом дереве проекта, если неизвестно, насколько глубоко он находится.
- Замена find в скриптах с сохранением привычных предикатов и параметров.
- Поиск по дереву каталогов с пропуском .git и других ненужных папок с помощью -exclude.
Быстрый старт
- 1
Установите через Homebrew на macOS
brew install bfs - 2
Или установите из пакетного менеджера вашего дистрибутива Linux (например, Arch Linux)
pacman -S bfs - 3
Или соберите из исходного кода: скачайте релиз или клонируйте репозиторий, затем запустите configure и make
./configure && make
Что важно знать
- Для сборки из исходного кода нужны компилятор C, GNU make и Bash; для использования всех функций могут также потребоваться дополнительные системные библиотеки.
Темы
Частые вопросы
- Что такое bfs?
- Вариант UNIX-команды find с обходом в ширину: сначала выводит файлы из неглубоких каталогов и совместим с POSIX-, BSD- и GNU-версиями find. bfs — вариант UNIX-команды find, который обходит дерево каталогов в ширину, а не в глубину. Он выводит файлы от самых неглубоких к самым глубоким, поэтому не приходится ждать, пока он пройдёт не связанное с поиском глубокое поддерево, прежде чем доберётся до нужного файла.
- bfs можно использовать бесплатно? Какая у него лицензия?
- bfs распространяется с открытым исходным кодом под лицензией 0BSD. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- bfs всё ещё поддерживается?
- Активно поддерживается. Последний коммит в bfs — 13 окт. 2026 г..
- Для чего можно использовать bfs?
- Поиск файла в большом дереве проекта, если неизвестно, насколько глубоко он находится. Замена find в скриптах с сохранением привычных предикатов и параметров. Поиск по дереву каталогов с пропуском .git и других ненужных папок с помощью -exclude.
- Как установить bfs?
- Установите через Homebrew на macOS: brew install bfs Или установите из пакетного менеджера вашего дистрибутива Linux (например, Arch Linux): pacman -S bfs Или соберите из исходного кода: скачайте релиз или клонируйте репозиторий, затем запустите configure и make: ./configure && make
- Где скачать bfs?
- Исходный код и инструкции по установке — на GitHub: https://github.com/tavianator/bfs
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Поддерживаемая сообществом коллекция шпаргалок с практическими примерами для популярных CLI-инструментов — простая альтернатива man-страницам.
Oils — совместимая с bash оболочка OSH и новый shell-язык YSH в стиле Python и JavaScript, написанные на Python и транслируемые в C++.
Кроссплатформенная оболочка, язык сценариев и платформа автоматизации для Windows, Linux и macOS, работающая со структурированными данными и объектами.
Кроссплатформенный терминал с открытым исходным кодом и интеграцией AI для macOS, Linux и Windows: BYOK, локальные модели, постоянные SSH-сессии и встроенный просмотр файлов.
Автономный инструмент командной строки, который отслеживает файлы и каталоги и запускает команду при каждом изменении.