在 OS X 中,有没有办法(shell 脚本?)来监视目录中的文件模式以及是否有任何文件更改来执行命令?
答案1
有一个应用程序可以实现这个功能:
/System/Library/CoreServices/Folder Actions Setup.app
选择要监视的文件夹和要执行的脚本。您还可以编辑脚本。
答案2
~/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
或重新登录以加载代理。
有一个launchd 陷阱 « 管理 OS X尽管:
事实证明,如果某个文件被列为 launchd 作业的 WatchPath,则它必须始终存在,否则 launchd 会将该路径从其要监视的路径列表中删除。因此,您无法监视某个文件的创建;您只能监视该文件的更改。