フォルダアクションを追加したいフォルダがあります。このアクションは、ファイルがトップレベルに追加されたときにうまく機能します。ただし、ファイルがサブフォルダーに追加されると、アクションは有効になりません。ファイルがそのサブフォルダーのいずれかに追加されたときにフォルダーアクションが有効になっていることを確認する方法はありますか?
launchd には watchpaths という機能があり、変更が発生したときに.shスクリプトなどを実行できます。
パスのセキュリティ要件に応じて、監視しようとしているのはいつか(ログインしているとき、または常に監視しているとき)。 plistを配置する場所を決定します。
~/Library/LaunchAgents Per-user agents provided by the user.
/Library/LaunchAgents Per-user agents provided by the administrator.
/Library/LaunchDaemons System-wide daemons provided by the administrator.
/System/Library/LaunchAgents Per-user agents provided by Mac OS X.
/System/Library/LaunchDaemons System-wide daemons provided by Mac OS X.
例:~/Library/LaunchAgents/com.tellemewhen.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.tellemewhen.plist</string>
<key>OnDemand</key>
<true/>
<key>Program</key>
<string>/PATH/TO/YOURSCIPTTORUN.sh</string>
<key>ProgramArguments</key>
<array>
<string></string>
</array>
<key>WatchPaths</key>
<array>
<string>/path/to/watch</string>
</array>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.tellemewhen.plist
plistをロードします。