it-mure.jp.net

ディレクトリ内のファイルが変更されたときにコマンドを実行する

OS Xでは、ディレクトリでファイルパターンを監視し、コマンドを実行するためのファイル変更があるかどうかを監視する方法(シェルスクリプトっぽい?)はありますか?

5
Michael Neale

そのためのアプリがあります:

/System/Library/CoreServices/Folder Actions Setup.app

監視するフォルダと実行するスクリプトを選択します。スクリプトを編集することもできます。

4
trurl

~/Library/LaunchAgents/watch.and.lol.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>watch.and.lol</string>
    <key>ProgramArguments</key>
    <array>
        <string>say</string>
        <string>lol</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>~/Desktop</string>
    </array>
</dict>
</plist>

launchctl load ~/Library/LaunchAgents/watch.and.lol.plistまたは再ログインしてエージェントをロードします。

起動された落とし穴"OS Xの管理 があります:

ファイルがlaunchdジョブWatchPathとしてリストされている場合、そのファイルは常に存在している必要があります。そうでない場合、launchdは監視するパスのリストからパスを削除します。したがって、特定のファイルの作成を監視することはできません。ファイルへの変更のみを監視できます。

5
Lri