Gibt es eine Möglichkeit, einen Ordner / eine Datei auf Änderungen zu überprüfen (einschließlich Hinzufügen von Dateien, Löschen von Dateien, Ändern von Dateien, ...)? Die 'Ordneraktion' in Automator überprüft nur, ob Dateien neu hinzugefügt wurden.
9
Antworten:
Sie können mit dem folgenden Befehl eine Aktion "Shell-Skript ausführen" hinzufügen:
Dadurch erhalten Sie alle Dateien und Verzeichnisse
<directory>
, die sich seit der letzten Änderung von geändert haben<reference_file>
. Stellen Sie einfach sicher, dass Sie die Änderungen<reference_file>
jedes Mal ändern, wenn Sie das Automator-Skript ausführen.man find
Weitere Optionen finden Sie auch auf der Seite Handbuch suchen ( im Terminal eingeben ). Die Suche ist sehr leistungsfähig und die weitere Verfeinerung Ihrer Suche ist normalerweise eine Frage einiger zusätzlicher Optionen. ZB nur nach Verzeichnissen suchen, die geändert wurden nach<reference_file>
:Wenn die mit OSX
findutils
gelieferte Version nicht ausreicht, können Sie auch die mitgelieferte Version (Brew, Macports usw.) ausprobieren, die etwas mehr Funktionen haben sollte.quelle
Ich kenne keine Möglichkeit, dies mit Automator zu tun, aber es gibt eine App im App Store namens Folder Watch, die möglicherweise das tut, was Sie verlangen.
quelle
Als ich das letzte Mal nachgesehen habe, verwendet Automater Applescript im Hintergrund, um Ihre Aktionen zu skripten. Applescript hat nicht viel Tiefe. Es kann zwar die Liste der Dateien in einem Verzeichnis abrufen (und Sie können daher herausfinden, wann etwas gelöscht wird), aber ich glaube nicht, dass es Änderungen an einer Datei berechnen kann.
Was Sie wirklich nutzen müssen, sind Dateisystembenachrichtigungen. Und da das ein Biest ist, würde ich Kraymers Rat befolgen und launchd verwenden. Es verfügt über Hooks, die immer dann ausgeführt werden können, wenn der Inhalt eines Ordners geändert wird. Lingon (siehe auch die veraltete SourceForge-Seite ) ist eine großartige Anwendung, um Leuten zu helfen, in den Start zu springen. Sie können Ihr Automator-Skript / Ihre Automator-Anwendung schreiben, um alles zu tun, was Sie vorhatten, als Ihr Verzeichnis geändert wurde, und einfach die Task "launchd" aufrufen.
quelle
Sie können eine frühere Antwort von mir überprüfen , aber es klingt wie Sie wollen
Launchd ist nicht der richtige Weg, um Dateiänderungen vorzunehmen. Fs_usage verwendet den zugrunde liegenden Computer, der Spotlight unterstützt.
EDIT: Ich bin hier völlig falsch. Launchd verfügt über genau die erforderliche Funktionalität, dh: eine Datei oder ein Verzeichnis ändern.
Sie erstellen eine .plist-Datei.
Schrei "XML SUX FOR CONF FILES!" ( Macht es wirklich. )
und Sie möchten einen oder beide der folgenden Schlüssel in Ihrem Startjob verwenden.
quelle