entr - это небольшая утилита для отслеживания изменений файлов и автоматического запуска команд. Она читает список файлов из stdin и перезапускает указанную команду каждый раз, когда один из файлов меняется. Используется для сборки, тестов, перезапуска сервисов и любых задач, где нужен простой file-watcher без демонов и сложной конфигурации.
Установка
sudo apt install entr
После установки бинарь entr доступен сразу.
Базовое использование
Чаще всего entr работает в связке с find или ls. Список файлов передаётся через pipe, после чего указывается команда, которую нужно выполнять при изменениях.
find . -name "*.go" | entr go test ./...
В этом примере тесты будут автоматически запускаться при любом изменении Go-файлов в проекте. Процесс остаётся в терминале и реагирует на каждое сохранение.
Полезные режимы
Для перезапуска long-running команд или сервисов используется флаг -r. Он корректно завершает предыдущий процесс перед новым запуском.
ls *.conf | entr -r nginx -t
Такой подход часто применяют для локальной проверки конфигураций, генерации статики, сборки документации и CI-подобных сценариев без отдельного watcher-инструмента.
Вывод
entr - это утилита для реактивного запуска команд при изменении файлов. Она хорошо подходит для разработки и администрирования, когда нужен простой и предсказуемый механизм автоматизации без дополнительных сервисов и фоновых процессов.
LinuxCamp | #utils
