Exécuter une commande lorsque les fichiers changent dans un répertoire

5

Sous OS X, existe-t-il un moyen (shell script-ish?) De consulter un répertoire pour un modèle de fichier et, le cas échéant, si un fichier est modifié pour exécuter une commande?

Michael Neale
la source
Bien que cela ne soit pas nécessaire, il peut être utile d’avoir un exemple: quels fichiers voulez-vous regarder et que faut-il en faire? Êtes-vous limité à utiliser la ligne de commande ou pouvez-vous également utiliser AppleScript?
Slhck

Réponses:

4

Il y a une application pour ça:

/System/Library/CoreServices/Folder Actions Setup.app

Sélectionnez un dossier à regarder et un script à exécuter. Vous pouvez également éditer le script.

trurl
la source
5

~/Library/LaunchAgents/watch.and.lol.plist:

<?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>watch.and.lol</string>
    <key>ProgramArguments</key>
    <array>
        <string>say</string>
        <string>lol</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>~/Desktop</string>
    </array>
</dict>
</plist>

launchctl load ~/Library/LaunchAgents/watch.and.lol.plist ou relogin pour charger l'agent.

Il y a un lancement et un «Gestion de Mac OS X :

Il s'avère que si un fichier est répertorié en tant que tâche launchd WatchPath, il doit exister à tout moment, ou launchd supprime le chemin de sa liste de chemins à surveiller. Donc, vous ne pouvez pas regarder pour la création d'un certain fichier; vous pouvez uniquement surveiller les modifications apportées au fichier.

Lri
la source