我想在Mac上写一个小脚本。此脚本将基本上在特定文件夹中查找新文件,并在找到某些文件夹时将其移动到其他位置。
所以我准备写一些非常基本的东西,带有无限循环,我想知道是否已经存在一些更好的东西?像听众或我可以使用的东西?
谢谢!
答案 0 :(得分:6)
您想要查看文件夹操作
http://www.simplehelp.net/2007/01/30/folder-actions-for-os-x-explained-with-real-world-examples/
答案 1 :(得分:4)
另一种方法,比文件夹操作稍微低一级,但我怀疑更灵活,就是使用 launchd 来观看文件夹。
请参阅launchd.plist(5)
或overview documentation for launchd(遗憾的是,此概述文档主要与守护程序有关,但原理相同;您感兴趣的关键是WatchPaths
,所以搜索它可能会发现更像教程的东西。
如果你走这条路线,你需要创建一个.plist
,如下所示,只要/path/to/virus/scanner.sh /Junk/Downloads
目录被修改,它就会运行命令/Junk/Downloads
。
<?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>localhost.clamav.clamscan</string>
<key>LowPriorityIO</key>
<true/>
<key>Nice</key>
<integer>1</integer>
<key>ProgramArguments</key>
<array>
<string>/path/to/virus/scanner.sh</string>
<string>/Junk/Downloads</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Junk/Downloads</string>
</array>
</dict>
</plist>
将其放在$HOME/Library/LaunchAgents/foo.plist
中,命令launchctl load $HOME/Library/LaunchAgents/foo.plist
将启动它。
答案 2 :(得分:1)
谢谢Lou。
我看了一下你的链接,想出了如何创建自己的文件夹动作做我想要的。
如果有人想要使用它,请分享行动:
现在一切正常!