将文件放入Mac OS X文件夹时收到通知

时间:2010-08-28 19:12:39

标签: macos unix scripting

我想在Mac上写一个小脚本。此脚本将基本上在特定文件夹中查找新文件,并在找到某些文件夹时将其移动到其他位置。

所以我准备写一些非常基本的东西,带有无限循环,我想知道是否已经存在一些更好的东西?像听众或我可以使用的东西?

谢谢!

3 个答案:

答案 0 :(得分:6)

答案 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。

我看了一下你的链接,想出了如何创建自己的文件夹动作做我想要的。

如果有人想要使用它,请分享行动: MoveAction

现在一切正常!