How to execute a Folder Action or another Automator script when I make changes to a folder? And by changes I mean not just deleting or inserting new file, the most important for me is when the content of a file is changed the action will be triggered.
Asked
Active
Viewed 2,572 times
5
-
Related questions: Monitor a folder for changes, and run a command when a change is detected, Checking for folder/file changes using Automator? – Lri Jun 20 '12 at 04:41
-
You have two awesome answers. Do either help you out? – bmike Apr 13 '13 at 11:09
2 Answers
2
Using launchd, you could save a property list like this in ~/Library/LaunchAgents/ and load it with something like launchctl load ~/Library/LaunchAgents/automator_test.plist or by logging out and back in.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>automator_test</string>
<key>ProgramArguments</key>
<array>
<string>automator</string>
<string>/Users/username/Desktop/Test.workflow</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Users/username/Desktop/</string>
</array>
<key>StartInterval</key>
<integer>0</integer> <!-- run at most every 0 seconds, by default 10 -->
</dict>
</plist>
Launchd only detects changes to files when they are saved atomically (or deleted and recreated every time they are saved). Most OS X apps perform atomic saves, but for example TextMate and vim don't.
Lri
- 105,117
-
I haven't tested it yet al test it when I get home. But will it make it automatically every time I save changes to a file inside the folder? I started to read something about launchctl not being the recommended app/service for that, but I cannot remember where I read it. – msmafra Jun 19 '12 at 20:48
-
-
I tested it again and it worked for me. Did you replace
username? You have tolaunchctl unload $path && launchctl load $pathto apply changes. – Lri Jun 20 '12 at 04:28 -
Thank you, but, it doesn't work the way I want. It does what Folder Actions does, which is triggered if I insert, move or delete something inside the folder. I edited a HTML file inside the folder and nothing happened. And it is not recursive. – msmafra Jun 20 '12 at 22:05
-
You're right that it's not recursive, but it should be triggered when files are modified or files or folders are moved, deleted, or created. – Lri Jun 21 '12 at 11:00