Проверка изменений папок/файлов с помощью Automator?

apple.stackexchange https://apple.stackexchange.com/questions/6658

Вопрос

Есть ли способ проверить папку/файл на наличие изменений (включает добавление файлов, удаление файлов, изменения в файлах, ...). «Действие папки» в Automator проверяет, только если какие -либо файлы добавлены.

Это было полезно?

Решение

Вы можете добавить действие «запустить скрипт оболочки» с командой:

find <directory> -newermm <reference_file>

Это даст вам все файлы и каталоги внутри <directory> которые изменились с момента последней смены <reference_file>. Анкет Просто убедитесь, что вы измените <reference_file> Каждый раз, когда вы запускаете сценарий Automator.

Также обратите внимание на страницу «Найти руководство» (введите man find в терминале) для получения дополнительных вариантов. Find очень мощный, и дальнейшее уточнение вашего поиска, как правило, является вопросом нескольких дополнительных вариантов. Например, искать только каталоги, измененные после <reference_file>:

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

Если версии, которая поставляется с OSX, недостаточно, вы также можете попробовать версию, которая поставляется с findutils (Brew, Macports и т. Д.), Которые должны иметь немного больше функций.

Другие советы

Я не знаю способа сделать это с помощью Automator, но в магазине приложений есть приложение под названием Foter Watch, которое может делать то, что вы просите.

Итак, в прошлый раз, когда я проверял, Automater использует AppleScript в фоновом режиме для сценария ваших действий. AppleScript не имеет большой глубины. Хотя он может получить список файлов в каталоге (и поэтому вы можете выяснить, когда что -то удаляется), я не верю, что это может рассчитать изменения в файле.

Что вам действительно нужно для использования, так это уведомления файловой системы. А так как это зверь, я бы принял совет Краймера и использовал запуск. У него есть крючки для выполнения в любое время, когда изменяется содержимое папки. Лингон (См. Также его устаревший Страница Sourceforge) является отличным применением для помощи людям прыгать в запуск. Вы можете написать свой скрипт/приложение Automator, чтобы сделать все, что вы планировали сделать, когда ваш каталог был изменен, и просто позвонить за задание запуска.

Ты можешь проверить При более раннем ответе, но похоже, что вы хотите

fs_usage -f filesys  

LaunchD - это не путь к изменениям файлов, FS_USAGE использует базовую машину, которая поддерживает Spotlight.

РЕДАКТИРОВАТЬ: Я совершенно неправ. У LaunchD именно требуется эта функция, т.е. сделайте что -нибудь в файле или изменении каталога.

Вы делаете файл .plist.

Кричать "XML Sux для файлов conf!" (Это действительно так.)

И вы захотите использовать один или оба клавиши ниже в вашем запуске.

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.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с apple.stackexchange
scroll top