Я хочу, чтобы скрипт не работал, если не был изменен / удален определенный файл (или файл, созданный в определенной директории, или ...). Может ли это быть достигнуто элегантным способом? Самое простое, что приходит мне в голову - это цикл, который некоторое время спит, прежде чем снова проверять статус, но, может быть, есть более элегантный способ?
32
Для программистов на Си есть API, называемый inotify .
Есть некоторые инструменты, которые его используют, например, incron и inotify-tools .
источник
На самом деле есть: entr (1) будет запускать произвольные команды при изменении файлов, а также предоставляет возможность автоматической перезагрузки для перезапуска серверов приложений.
редактировать: несколько примеров
Перестройте, если исходные файлы изменились
Запустите и автоматически перезагрузите тестовый сервер, если файлы изменятся
Предоставление агента
+/path/to/fifo
позволяет выполнять более сложные сценарии, инструктируяentr
запись имени каждого файла, который изменяется на именованный канал. Следующие файлы преобразуют файлы Markdown в текущем каталоге в HTML по мере их редактированияисточник
entr
передать имя файла, который также изменился?/_
аргумент (в некоторой степени аналогичный$
_ в Perl) заменяется именем первого измененного файла