WatchPaths
ne semble pas pouvoir surveiller un sous-répertoire de manière récursive, donc le mieux que vous puissiez faire avec lui est de surveiller les activités d'un seul répertoire. Vous voudrez peut-être jeter un coup d'œil aux actions sur les dossiers, elles sont discutées en détail dans cet article de blog intitulé : Configurer les actions de dossier OS X pour savoir quand un fichier est ajouté également.
Une autre solution consiste à utiliser un outil CLI disponible dans Homebrew via la commande brew install fswatch
commandement. fswatch
est une implémentation multiplateforme qui fonctionne sur la plupart des versions de *NIX, y compris MacOS.
Le moniteur FSEvents, disponible uniquement sous OS X, n'a pas d'équivalent connu. et s'adapte très bien au nombre de fichiers observés. observés.
Exemple
Ici, j'ai créé un sous-répertoire appelé ~/somedir
. J'ai ensuite invoqué `fswatch dans ce répertoire :
$ mkdir ~/somedir
$ fswatch /some/dir
Si nous commençons à ajouter des fichiers et des sous-répertoires fswatch
le notifiera :
$ touch ~/somedir/afile
fwatch msg>> /Users/joeuser/somedir/afile
$ mkdir ~/somedir/anotherdir
fswatch msg>> /Users/joeuser/somedir/anotherdir
$ touch ~/somedir/anotherdir/afile
fswatch msg>> /Users/joeuser/somedir/anotherdir/afile
Ce qui précède peut être adapté pour être utilisé dans un script shell qui peut effectuer toutes les autres actions que vous souhaitez lorsque des changements sont détectés dans l'arborescence du répertoire que vous avez créé. fswatch
est surveillée.
Autres exemples
Pour agir sur l'activité du système de fichiers, vous pouvez utiliser l'un de ces deux modèles :
$ fswatch -0 path | while read -d "" event \
do \
// do something with ${event}
done
Ou encore ceci :
$ fswatch -o path | xargs -n1 -I{} program
Références