7

要在 linux 中监控文件,我可以像这样使用 inotify-tools

#!/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 中实现这一点?

4

3 回答 3

6

如果你想把它包装成 Python 脚本,你可以使用 Watchdog,它适用于 Linux 和 OSX。

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

下面是用看门狗替换 pyinotify 的样子:

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

Watchdog 也有一个名为的 shell 实用程序watchmedo

watchmedo shell-command \
    --patterns="*.py;*.txt" \
    --recursive \
    --command='echo "${watch_src_path}"' \
    .
于 2013-03-27T22:19:24.283 回答
3

是的,您可以使用FSEvents API

于 2011-08-05T22:55:02.913 回答
1

你可以使用entr工具。示例用法:

ls some_file | entr do_something

在 Mac 上通过 Brew 安装:brew install entr.

于 2016-07-06T17:19:38.340 回答