Альтернативный способ, чуть более низкого уровня, чем действия папки, но я подозреваю, более гибким, чтобы использовать запуск программ смотреть папку.
См 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
начнет его движение.
Интересно, является ли это более сложным, чем вопрос StackOverflow - довольно полезный вопрос и ответ на любом сайте в любом случае - слишком много людей не знают о действиях с папками! – JulesLt