9 votes

Vérification des modifications de dossiers/fichiers à l'aide d'Automator ?

Existe-t-il un moyen de vérifier les modifications apportées à un dossier/fichier (y compris l'ajout de fichiers, la suppression de fichiers, les modifications dans les fichiers, ...). L'action "Dossier" dans Automator vérifie uniquement si des fichiers ont été ajoutés récemment.

5voto

m000 Points 791

Vous pouvez ajouter une action "Exécuter Shell script" avec la commande :

find <directory> -newermm <reference_file>

Cela vous donnera tous les fichiers et répertoires à l'intérieur de <directory> qui ont changé depuis la dernière modification de <reference_file> . Assurez-vous simplement de modifier le <reference_file> à chaque fois que vous exécutez le script d'Automator.

Jetez également un coup d'œil à la page du manuel de recherche (entrez man find dans le terminal) pour plus d'options. Find est très puissant et affiner votre recherche est généralement une question de quelques options supplémentaires. Par exemple, pour rechercher uniquement les répertoires modifiés après le <reference_file> :

find <directory> -type d -newermm <reference_file>

Si la version livrée avec OSX ne suffit pas, vous pouvez également essayer la version livrée avec findutils (brew, macports etc) qui devrait avoir un peu plus de fonctionnalités.

1voto

Kris Points 588

Je ne connais pas de moyen de faire cela avec Automator, mais il y a une application dans l'App Store appelée Folder Watch qui peut faire ce que vous demandez.

1voto

pesche Points 882

Aux dernières nouvelles, Automater utilise Applescript en arrière-plan pour script vos actions. Applescript n'a pas beaucoup de profondeur. S'il peut obtenir la liste des fichiers d'un répertoire (et donc vous pourriez savoir quand quelque chose est supprimé), je ne crois pas qu'il puisse calculer les modifications apportées à un fichier.

Ce que vous devez vraiment exploiter, ce sont les notifications du système de fichiers. Et comme c'est une bête, je suivrais le conseil de Kraymer et utiliserais launchd. Il a des crochets pour exécuter chaque fois que le contenu d'un dossier est modifié. Lingon (voir aussi son Page SourceForge ) est une excellente application pour aider les gens à se lancer dans launchd. Vous pouvez écrire votre automator script/application pour faire tout ce que vous aviez prévu de faire lorsque votre répertoire a été modifié et juste avoir la tâche launchd appeler cela.

1voto

chiggsy Points 2899

Vous pouvez vérifier à une de mes réponses précédentes mais on dirait que tu veux

fs_usage -f filesys  

Launchd n'est pas la voie à suivre pour les changements de fichiers, fs_usage utilise la machine sous-jacente qui alimente Spotlight.

EDIT : Je me trompe complètement ici. Launchd a exactement cette fonctionnalité requise, c'est-à-dire : faire quelque chose lors d'un changement de fichier ou de répertoire.

Vous créez un fichier .plist.

Criez "XML SUX FOR CONF FILES !" ( C'est vraiment le cas. )

et vous voudrez utiliser une ou les deux clés ci-dessous dans votre job launchd.

WatchPaths <array of strings>
 This optional key causes the job to be started if any one of the listed
 paths are modified.

 QueueDirectories <array of strings>
 Much like the WatchPaths option, this key will watch the paths for modi-
 fications. The difference being that the job will only be started if the
 path is a directory and the directory is not empty.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X