Проверка изменений папок/файлов с помощью Automator?
Вопрос
Есть ли способ проверить папку/файл на наличие изменений (включает добавление файлов, удаление файлов, изменения в файлах, ...). «Действие папки» в 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.