2010-08-28 126 views
1

我想在我的Mac上编写一个小脚本。该脚本基本上会查找特定文件夹中的新文件,并在找到某些文件夹时将其移至其他位置。将文件放入文件夹时收到通知Mac OS X

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

谢谢!

+0

我不知道这是否是一个超级用户比StackOverflow问题 - 无论如何都是非常有用的问题和答案 - 太多人不知道文件夹操作! – JulesLt 2010-08-29 08:09:54

回答

4

的另一种方式,稍微级低不是文件夹的动作,但我怀疑更灵活,是使用的launchd观看的文件夹。

launchd.plist(5),或overview documentation for launchd(不幸的是,本概述文档主要关注的是守护进程,但原理是一样的;你有兴趣,关键是WatchPaths,因此搜索可能会发现更多的东西一样的教程)。

如果你走这条路线,你需要创建一个如下所示的.plist,每当修改/Junk/Downloads目录时,它都会运行命令/path/to/virus/scanner.sh /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将启动下去。

1

谢谢Lou。

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

公正地分享,以防有人动作要使用它: MoveAction

它工作正常的吧!

相关问题