每当我在特定应用程序中“保存”时,如何自动执行 shell 命令、AppleScript 或启动任务?
操作系统:小牛队
答案1
这个答案可能回答了你的问题 -Bash 脚本,监视文件夹,执行命令。
这与运行 cron 差不多,因为脚本会休眠 2 秒并重新计算目录中文件的 MD5 哈希值。
答案2
您正在寻找WatchPaths
的密钥launchd
。在 中创建作业定义~/Library/LaunchAgents
:
<?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>local.convertToTxt</string>
<key>Program</key>
<string>/path/to/script</string>
<key>WatchPaths</key>
<array>
<string>/path/to/directory</string>
</array>
</dict>
</plist>
棘手的部分是找出哪个文件已被修改。每次在此目录中创建或修改文件时都会触发该脚本,但launchd
无法提供触发该操作的文件的线索。按创建日期 ( ls -t /path/to/directory | head -1
) 对目录内容进行排序应该可以解决问题。另外,请确保将转换后的文件写入另一个目录。否则文件转换将再次触发脚本。