【问题标题】:Be notified when a file is dropped into a folder Mac OS X将文件放入文件夹时收到通知 Mac OS X
【发布时间】:2011-04-05 06:14:06
【问题描述】:

我想在我的 Mac 上写一个小脚本。该脚本基本上会在特定文件夹中查找新文件,并在找到某些文件时将它们移动到另一个位置。

所以我正要写一些非常基本的东西,有一个无限循环,我想知道是否已经存在更好的东西了?像 Listener 或我可以使用的东西?

谢谢!

【问题讨论】:

  • 我想知道这是否更像是一个超级用户问题而不是 StackOverflow 问题 - 无论如何,这两个网站上的问题和答案都非常有用 - 太多人不知道文件夹操作!

标签: macos unix scripting


【解决方案1】:
【解决方案2】:

另一种方法是使用 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 命令将启动它。

【讨论】:

    【解决方案3】:

    谢谢娄。

    我查看了您的链接,并想出了如何创建自己的文件夹操作来做我想做的事。

    只是分享动作以防有人想使用它:

    它现在工作正常!

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 2011-04-07
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多