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?


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.