Папки-действия Automator на Mac: настройка по шагам и решение проблем

Папки-действия Automator на Mac: настройка по шагам и решение проблем

Автор: Josh Callahan11 мин чтения

Ближе к обеду папка «Загрузки» снова забита. Скриншоты лежат рядом со счетами, установщиками, сканами и фотографиями, которые вы собирались уменьшить, а разбирать всё это вручную съедает время, нужное для настоящей работы. Папки-действия Automator могут сортировать файлы в ту же секунду, как они появились, но только если настроить их как событийные процессы и протестировать так же тщательно, как любую автоматизацию, которой вы собираетесь доверять.

Что делают папки-действия Automator и когда их использовать ​

Допустим, в «Загрузки» каждый день сваливаются файлы самых разных типов, а вы хотите, чтобы PDF раскладывались по местам, картинки уменьшались, а сканы переименовывались, и всё это без единого клика. Именно для этого и придумана папка-действие. Это процесс, привязанный к папке в Finder: он запускается, когда в неё добавляются объекты, и получает эти файлы или папки на вход.

Обычный процесс Automator устроен иначе: он ждёт, пока вы нажмёте «Запустить». В руководстве macOS Automation по папкам-действиям эта система прослеживается до Mac OS 8.5, а поддержка Automator задокументирована начиная с macOS 10.4. Больше истории вам для работы не нужно.

Что на самом деле делает процесс ​

Каждый процесс — это цепочка действий: Получить указанные объекты Finder, Изменить размер изображений, Переименовать объекты Finder или Напечатать. Когда встроенных действий не хватает, цепочку можно расширить командами shell, AppleScript и JavaScript. Если вы разгребаете «Загрузки», сначала решите, по каким правилам называть файлы и куда их класть: полезно составить понятные правила именования файлов, прежде чем автоматизировать перемещения, о которых потом пожалеете.

Сценарий для папкиДействие процессаПример результата
Сортировка «Загрузок» по типу файлаПереместить объекты FinderPDF уходят в «Документы», картинки — в «Изображения»
Переименование входящих скановПереименовать объекты FinderК сканам добавляется дата в начале, например 2025-01-15_scan.pdf
Уменьшение входящих фотоИзменить размер изображенийДлинная сторона фото не больше 2000 пикселей
Архивация новых папок проектовСоздать архивZip-файл сохраняется рядом с оригиналом
Печать входящих документовНапечататьОтправляются на принтер по умолчанию

Если задача должна выполняться для каждого нового файла, берите папку-действие. Если нужно лишь время от времени, обычный процесс проще отлаживать, а сравнение других вариантов автоматизации на Mac поможет выбрать инструмент полегче.

Как создать и подключить процесс папки-действия ​

Создание процесса и его подключение — это две разные работы. Большинство случаев «оно вообще не запускается» возникает из-за того, что первую работу сделали хорошо, а вторую пропустили. Пройдите оба этапа по порядку и тестируйте на файлах, которых не жалко.

Инфографика из шести шагов о том, как создать и подключить процесс папки-действия в Apple Automator.

Создайте процесс ​

  1. Откройте Automator и выберите «Действие папки»: нажмите «Новый документ», затем выберите тип «Действие папки». Именно тип определяет, что входящие объекты становятся входными данными процесса, а в руководстве Apple по созданию папки-действия в Automator сказано, что процесс запускается при добавлении объектов и получает эти файлы на вход. Выбрать обычный тип процесса — самая частая первая ошибка.

  2. Выберите целевую папку в верхнем выпадающем меню: укажите папку, в которую будут добавляться файлы, и для начала возьмите одноразовую тестовую папку, а не «Загрузки». Здесь вы будете бросать, дублировать и удалять файлы, и тестовая папка делает ошибки дешёвыми. Если направить недоделанный процесс на рабочую папку, файлы легко переместятся дважды.

  3. Добавьте действия из библиотеки: перетащите такие действия, как «Получить указанные объекты Finder», «Фильтровать объекты Finder» или «Переместить объекты Finder», и оставьте у каждого действия в качестве входных данных входящие файлы. Для задач с переименованием действует та же дисциплина порядка, что и при пакетном переименовании файлов на Mac. Добавляйте по одной настоящей операции, потому что длинная цепочка, которая падает, не говорит, какой именно шаг сломался.

  4. Сохраните с понятным названием: назовите процесс, например, «Загрузки: PDF в Документы», а не «Процесс 3». Именно это название вы потом увидите в «Настройке действий папки», когда будете вспоминать, какой скрипт за что отвечает. Расплывчатые названия превращают будущий поиск неполадок в гадание.

Подключите и включите его ​

  1. Откройте «Настройку действий папки» из Finder: щёлкните по папке, удерживая Control, выберите «Настройка действий папки» и подключите сохранённый процесс. Сохранённый процесс сам по себе ничего не делает, пока его не подключат, и забытый шаг — самая частая причина того, что рабочий процесс выглядит мёртвым.

  2. Проверьте оба переключателя: отметьте общий флажок «Включить действия папки» и флажок «Вкл.» у конкретной папки. Классическая ошибка — отметить папку, оставив общий переключатель выключенным: процесс будет простаивать, и никакая ошибка об этом не предупредит.

  3. Бросьте один тестовый файл: скопируйте в папку один ненужный файл и убедитесь, что действие сработало и дало ожидаемый результат. Не начинайте с пачки: один файл даёт один понятный результат для проверки.

Позже можно отключить отдельное действие, не удаляя сам процесс. Это удобно при поэтапном внедрении: можно поставить одну папку на паузу, поправить процесс и снова включить его, не пересобирая подключение.

Как проверить папку-действие, прежде чем ей доверять ​

Начните с того, что замените операцию шагом журналирования, который записывает путь каждого полученного файла в обычный текстовый файл. Бросьте один ненужный файл и прочитайте журнал. Входящий список может содержать несколько объектов из одного события, поэтому нужно точно увидеть, что получает процесс, прежде чем позволять ему что-то перемещать или переименовывать.

Прогоните матрицу тестов до настоящей операции ​

Тестовый случайКак выполнитьУсловие успеха
Один скопированный файлБросьте в папку один ненужный файлВ журнале один запуск с правильным путём
Пачка новых файловСкопируйте разом 120 мелких файловКаждый файл обработан один раз, ни один не пропущен
Вложенная папкаПоложите файл на два уровня глубжеДействие срабатывает только там, где задумано
ДубликатСкопируйте один и тот же файл дваждыРезультат не дублируется
Перезагрузка и повторный входПерезагрузите Mac, затем добавьте файлДействие по-прежнему подключено и запускается
Большой файл, который ещё записываетсяМедленно скопируйте файл на несколько гигабайтСкрипт ждёт, пока размер файла стабилизируется
Файл из синхронизацииПереместите файл из iCloud DriveВ журнале видно, сработало ли действие

Тест с одним файлом подтверждает, что базовый запуск работает. Тест с пачкой я бы ценил выше всего, потому что он вскрывает пропущенные файлы и двойную обработку, которых одиночный файл никогда не покажет.

Тест с вложенной папкой показывает, срабатывает ли действие только на нужном уровне. Это важно, если ваш процесс записывает результат обратно в отслеживаемую папку: результат, попавший в подпапку, может вызвать новый запуск. Тест с дубликатом проверяет, повторяет ли работу повторное появление файла.

Перезагрузка и добавление файла после повторного входа подтверждают, что подключение переживает новый сеанс, а именно тогда многие тихие сбои проявляются впервые. Медленное копирование большого файла проверяет, не начинает ли скрипт обработку, пока файл ещё дописывается.

Только после того, как матрица пройдена, замените шаг журналирования настоящей операцией: перемещением, переименованием или вызовом скрипта. Затем повторите тесты с одним файлом и с пачкой уже с этой операцией.

Ведите подсчёт ожидаемых и обработанных файлов в тесте с пачкой. Любое расхождение означает, что процессу нужна проверка стабильности размера или промежуточная папка, прежде чем на него можно полагаться.

Почему пачки файлов и синхронизация ломают папки-действия ​

Вот заблуждение, из-за которого случается большинство сбоев. Папки-действия — это уведомления о событиях, а не гарантированная очередь. Если считать их транзакционным конвейером, где каждый файл обрабатывается ровно один раз и по порядку, вы получите пропущенную и продублированную работу.

В обсуждении на форуме Apple Support Community о поведении папок-действий описаны действия, которые срабатывают раньше, чем большая пачка успела полностью поступить, обрабатывают только те объекты, что попали в данное событие, и ведут себя непредсказуемо, когда файлы появляются через внешние диски, резервные копии или службы синхронизации. Объекты, синхронизированные с других устройств через iCloud, тоже не всегда запускают папки-действия.

Рисованная иллюстрация раздражения из-за непоследовательной обработки файлов папками-действиями macOS.

Локальное перетаскивание — самый предсказуемый способ поступления. Файл целый, событие приходит быстро, и простой процесс обычно справляется. Но и здесь стоит добавить в скрипт «успокоение»: пусть он ждёт несколько секунд тишины, прежде чем действовать.

Сетевые тома добавляют задержку между появлением файла и тем моментом, когда его содержимое можно прочитать. Риск в том, чтобы обработать неполный файл, поэтому убедитесь, что размер файла не меняется при двух замерах, прежде чем к нему прикасаться.

Папки облачной синхронизации сложнее: запись о папке может появиться раньше, чем загрузится содержимое. Обрабатывайте синхронизированные файлы из локальной промежуточной папки, а не прямо в синхронизируемом месте, и не считайте, что событие вообще произошло.

Массовый импорт создаёт всплески событий, которые могут прийти раньше, чем закончится пачка. С этим сталкиваются фотографы, импортирующие карту памяти, разработчики, распаковывающие ресурсы, и исследователи, копирующие наборы данных. Копируйте поступления в промежуточную папку, обрабатывайте их там и отмечайте завершение файлом с детерминированным именем, а после каждого массового импорта сравнивайте ожидаемое число файлов с обработанным.

Прежде чем доверять настройке, ответьте для своих папок на один вопрос: останется ли процесс корректным, если файлы поступают быстро или окольным путём через синхронизацию или резервное копирование?

Как починить папки-действия, которые зависают, дублируют или пропускают файлы ​

Если действие вообще не запускается, проверяйте в строгом порядке и не начинайте с переписывания скрипта. Сначала убедитесь, что включён общий переключатель «Включить действия папки», затем флажок «Вкл.» у папки, затем ожидающий запрос на одобрение Apple Event и наконец собственный журнал скрипта. Только когда всё это в порядке, стоит подозревать логику самого скрипта: в обзоре macOS Automation по папкам-действиям задокументировано, что фоновый процесс FolderActionsDispatcher запускает эти процессы отдельно от сохранённых вами файлов процессов.

Инфографика из четырёх шагов об устранении неполадок папок-действий macOS, которые зависают, дублируют или пропускают файлы.

Против дубликатов добавьте маркер завершения или проверку, существует ли уже результат, прежде чем обрабатывать файл. Тогда повторное событие станет безвредным и не породит вторую копию, второй архив или вторую задачу печати.

Против пропущенных файлов вынесите тяжёлую работу в промежуточную папку и дожидайтесь стабильного размера файла, прежде чем что-либо делать. Сначала фильтруйте по типу и имени файла, проверяйте, что файл всё ещё существует, а сбои записывайте в журнал, а не выбрасывайте.

Проблема очереди ​

Скрипты, которые делают сетевые запросы, запускают рекурсивный обход или конвертируют большие изображения, задерживают диспетчер и откладывают следующие события. Тогда всё действие кажется ненадёжным, хотя логика верна. Делайте каждый скрипт коротким, пусть он быстро возвращает управление, а медленные шаги переносите на этап промежуточной папки, где они не заблокируют запуск.

СимптомВероятная причинаРешение
Действие не запускаетсяВыключен общий переключатель «Включить действия папки» или не отмечен флажок «Вкл.» у папкиВключите оба в «Настройке действий папки» и проверьте снова
Один файл обработан дваждыПовторное событие или пакетная доставкаДобавьте маркер завершения или проверку, существует ли результат
Часть файлов из пачки пропущенаСкрипт вернул управление до окончания записи файлаКопируйте в промежуточную папку и дожидайтесь стабильного размера файла
Скрипт заблокирован после обновления macOSСнова нужно одобрение Apple EventОдобрите запрос безопасности при следующем запуске
Нестабильные запуски с файлами iCloudЗадержка синхронизации до готовности файлаОбрабатывайте синхронизированные файлы из локальной промежуточной папки
В журнале «в доступе отказано»У приложения, запускающего скрипт, нет доступа к папкеВыдайте нужный доступ приложению, запускающему скрипт, и повторите проверку

Идите по таблице сверху вниз, от самой вероятной причины. Ведите и постоянный чек-лист: проверяйте подключение, читайте журнал после каждой пачки, держите скрипты короткими и повторяйте аудит после каждого обновления macOS или изменения разрешений.

Разрешения, аудит и уборка после настройки ​

Отслеживаемая папка выглядит точно так же, как любая другая. В «Настройке действий папки» у неё нет значка в Finder, поэтому о забытом действии легко не вспомнить, а через несколько месяцев трудно обнаружить. Из-за этой невидимости процессы и кажутся внезапно перестающими работать после изменений безопасности, смены разрешений или переезда на другой Mac.

На странице macOS Automation о «Настройке действий папки» описан этот интерфейс управления, где можно просматривать отслеживаемые папки и включать или отключать подключённые скрипты. Начиная с macOS Mojave процессы со скриптами Apple Event требуют одобрения пользователя при первом запуске. После одобрения они работают без новых запросов, но обновление или смена разрешений могут потребовать одобрения снова.

Проводите этот аудит регулярно ​

  1. Составьте список всех отслеживаемых папок: откройте «Настройку действий папки» и запишите каждую, ведь нельзя проверить то, что не внесено в опись.
  2. Откройте каждый подключённый скрипт: отметьте, что он читает, записывает или вызывает: это и есть реальная поверхность доступа, которую вы выдаёте.
  3. Отключайте устаревшие действия, а не удаляйте их: отключённое действие можно позже вернуть, а удалённый процесс придётся собирать заново.
  4. Проверьте тип тома: отметьте любую папку на внешнем, сетевом или синхронизируемом томе, потому что такие места меняют поведение событий и доступ.
  5. Повторяйте проверку после обновлений: после каждого обновления macOS или изменения разрешений снова выполняйте тест с одним файлом, чтобы убедиться, что подключение срабатывает.

Локальная автоматизация не обязательно приватна. Имена файлов могут попадать в скрипты, журналы, сторонние программы и папки, смонтированные из облака, поэтому записывайте в журнал пути и количество, а не содержимое файлов. Та же привычка вести опись помогает и когда вы выбираете рабочее пространство для исследовательских заметок: нужно знать, что инструмент может читать, прежде чем доверять ему рабочие материалы.

Наша собственная схема разрешений устроена по этой более узкой модели. Folder Watcher требует полного доступа к диску, о котором macOS спрашивает при первом включении, а вот раскрашивать папки вручную полный доступ к диску не нужен. Подсказки по значкам и цветам вычисляются локально на вашем Mac, названия папок никогда не покидают устройство, а Tintd не обращается ни к каким сервисам ИИ.

Чтобы убедиться, к чему прикасался скрипт, проверьте в его журнале четыре вещи: метку времени, входной путь, выходной путь и любые записи об отказе в доступе.

Следующий шаг: настройте Tintd Folder Watcher ​

Разделите обязанности чётко. Ваша папка-действие перемещает и обрабатывает файлы, а наш Folder Watcher замечает каждую новую папку, созданную в выбранных местах, и автоматически назначает ей подходящие цвет и значок по названию. Эта связка хорошо дополняет подходы, описанные в руководствах по программам для отслеживания папок, если только два инструмента не борются за одно и то же место.

Вот визуальный результат, к которому вы стремитесь, когда новые папки оформляются единообразно.

Скриншот с https://www.tintd.app

Folder Watcher можно выключить в любой момент в «Системных настройках». Ему нужен полный доступ к диску, о котором macOS спросит при первом включении, а для ручной раскраски папок этот доступ не требуется. Изменение значков и цветов — чисто косметическое и не затрагивает файлы и вложенные папки, а пользовательские значки папок хранятся локально на каждом Mac, поэтому на каждой машине их нужно настраивать отдельно.

Безопасный первый запуск ​

  1. Выберите одно тестовое место, где нет важных файлов.
  2. Включите там Folder Watcher и выдайте полный доступ к диску, когда macOS спросит.
  3. Создайте новую папку и проверьте, что она получила цвет и значок.
  4. Только после этого добавляйте свои настоящие папки, когда тестовое место ведёт себя как надо.

Держите Folder Watcher в другом месте, чем любая папка-действие, которая перемещает или переименовывает файлы, чтобы они не боролись за одни и те же события. Короткое видео ниже показывает, как наблюдатель оформляет новые папки по мере их создания.

После обновления macOS прогоните свою матрицу тестов и убедитесь, что и папка-действие, и Folder Watcher по-прежнему работают как надо, а не считайте это само собой разумеющимся.


Если ваши папки-действия Automator теперь надёжно сортируют файлы, поручите визуальную часть Tintd: он автоматически подберёт каждой новой папке подходящие цвет и значок, а все подсказки вычисляются локально на вашем Mac. Загляните на Tintd, настройте Folder Watcher на одном тестовом месте уже сегодня и посмотрите, как следующая новая папка оформится в ту же секунду, как вы её создадите.

Josh Callahan

Автор

Josh Callahan

Копирайтер

Поделиться статьёй

Готовы сделать ваши папки красивыми?

Раскрасьте значки ваших папок всего за несколько кликов.

Скачать для Mac