Перевірка змін папок / файлів за допомогою Automator?


9

Чи є спосіб перевірити папку / файл на наявність змін (включає додавання файлів, видалення файлів, зміни у файлах, ...). "Дія папок" в Автоматизаторі перевіряє, чи не додані файли.


Я не вважаю, що це можливо по-справжньому з Automator. Можливо, ви могли б зробити щось із деякими сценаріями (і сценаріями, якщо вам це потрібно для роботи в Automator), але вам доведеться запустити робочий процес, щоб виявити зміни з моменту останнього запуску.
jtjacques

3
Ви подивилися на старт? ср stackoverflow.com/questions/1515730 / ...
kraymer

Відповіді:


5

Ви можете додати дію "Запустити скрипт оболонки" за допомогою команди:

find <directory> -newermm <reference_file>

Це дасть вам усі файли та каталоги всередині <directory>, які змінилися з моменту останньої зміни <reference_file>. Просто переконайтеся, що ви змінюєте <reference_file>кожен раз, коли ви запускаєте скрипт Automator.

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

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

Якщо версії, що постачається з OSX, недостатньо, ви також можете спробувати версію, яка постачається разом findutils(варити, макпорти тощо), яка повинна мати трохи більше функцій.


1

Я не знаю, як це зробити з Automator, але в App Store є додаток під назвою Folder Watch, який може робити все, що ви просите.


1

Тож останній раз, коли я перевірив, Automater використовує Applescript у фоновому режимі для сценарію своїх дій. Яблукопис не має до нього великої глибини. Хоча він може отримати список файлів у каталозі (і тому ви можете дізнатися, коли щось видаляється), я не вірю, що він може обчислити зміни у файлі.

Те, що вам потрібно використовувати, - це сповіщення файлової системи. А оскільки це звір, я б скористався порадою Краймера і скористався запуском. Він має гачки для виконання будь-якого разу, коли вміст папки змінюється. Lingon (див. Також застарілу сторінку SourceForge ) - це чудовий додаток, який допомагає людям стрибати у старт. Ви можете написати свій сценарій / додаток автоматизатора, щоб робити все, що ви планували робити, коли ваш каталог був змінений, і просто виклик цього завдання.


1

Ви можете перевірити попередню мою відповідь , але це звучить так, як ви хочете

fs_usage -f filesys  

Launchd - це не спосіб змінити файли, fs_usage використовує основну машину, яка працює над прожектором.

EDIT: Я тут абсолютно не так. 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.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.