Как достичь Linux оболочки Inotify-Tools методы на OSX

Для мониторинга файла в Linux, я могу использовать такие инструменты inotify

#!/bin/bash

# with inotify-tools installed, watch for modification of file passed as first param
while inotifywait -e modify $1; do
        # do something here
done

но как бы я добиться этого в OSX?

3 ответа

Решение

Если вы хотите обернуть это в скрипт Python, вы можете использовать Watchdog, который работает как с Linux, так и с OSX.

https://pypi.python.org/pypi/watchdog

Вот как выглядит замена pyinotify на watchdog:

https://github.com/raphdg/baboon/commit/2c115da63dac16d0fbdc9b45067d0ab0960143ed

Watchdog также имеет утилиту оболочки под названием watchmedo:

watchmedo shell-command \
    --patterns="*.py;*.txt" \
    --recursive \
    --command='echo "${watch_src_path}"' \
    .

Да, вы можете использовать API FSEvents

Ты можешь использовать entr инструмент. Пример использования:

ls some_file | entr do_something

На Mac установить через Brew: brew install entr,

Другие вопросы по тегам