Как добиться, чтобы Linux-инструменты Inotify-Tools оболочки на OSX - PullRequest
7 голосов
/ 06 августа 2011

Для мониторинга файла в 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 ]

6 голосов
/ 28 марта 2013

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

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

Вот как выглядит замена pyinotify на сторожевой таймер:

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

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

watchmedo shell-command \
    --patterns="*.py;*.txt" \
    --recursive \
    --command='echo "${watch_src_path}"' \
    .
3 голосов
/ 06 августа 2011

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

0 голосов
/ 06 июля 2016

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

ls some_file | entr do_something

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

...