Вы попали по адресу, если хотите узнать, как запускать команды Linux при изменении любого файла в рабочем каталоге и при создании новых файлов.
В Linux вы можете использовать cron, чтобы запланировать выполнение команд в определенное время.
Но что если вам нужно, чтобы команды выполнялись каждый раз, когда файл изменяется или в каталог добавляется новый файл?
Это также легко выполнимо, и для этого существуют некоторые инструменты командной строки.
Давайте приступим!
watchexec
watchexec – это удобный и автономный инструмент, который отслеживает заданный рабочий каталог и выполняет команду, если обнаруживает какие-либо изменения, например, обновление файлов или создание новых файлов.
Особенности
- Не требует сложной командной строки, включающей xargs (расширенные аргументы).
- Проверяет изменения в текущем каталоге и всех подкаталогах в режиме реального времени.
- Нет необходимости в языковой среде выполнения, и она не связана с каким-либо конкретным языком или экосистемой.
- По умолчанию используются .gitignore и .ignore, чтобы решить, для каких файлов игнорировать уведомления.
- Группы процессов используются для отслеживания развилок программ.
- Поддерживается наблюдение за файлами с определенным расширением.
- Он совместим с OS X, Linux и Windows.
- Возможна фильтрация и игнорирование событий на основе glob (шаблонов поиска файлов для нахождения частично идентичных имен файлов.
Установка watchexec
Чтобы легко установить инструмент watchexec, вставьте следующую ссылку в терминал или интерпретатор командной строки и нажмите Enter.
Linux и macOS
Примеры команд
Эта команда показывает все файлы, присутствующие в каталоге, всякий раз, когда обнаруживает любое изменение.
Вызов/перезапуск любой службы при изменении любого файла в текущем каталоге (и всех подкаталогах).
watchexec -e html -r tor
watchexec -e js,py -r mysql
Здесь опция “-r” перезапускает процесс или службу, если она запущена в системе.
entr
entr – это простая и отличная утилита командной строки для запуска произвольных команд при возникновении любых изменений в заданном каталоге.
“entr” означает Event Notify Test Runner.
Этот инструмент был создан с целью быстрой обратной связи и автоматизированного тестирования.
Установка
entr предустановлен в дистрибутиве Linux.
В случае его отсутствия, вам необходимо установить его вручную.
Этот инструмент прост в использовании и может быть установлен с помощью следующей команды.