Перейти к содержанию

Глава 10: Практические рецепты и устранение неполадок

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

Эта глава разделена на два обширных раздела:

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

1. Визуальный быстрый старт: матрица решения повседневных проблем

Следующая матрица решений отображает общие цели управления файлами и технические проблемы непосредственно со встроенными инструментами и идентификаторами команд ATBCmder:

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                   МАРШРУТИЗАТОР ПОВСЕДНЕВНЫХ ЗАДАЧ И РЕШЕНИЯ ПРОБЛЕМ                   │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│  ЗАДАЧА / ЦЕЛЬ                             ИНСТРУМЕНТ / МЕТОД       ГОРЯЧАЯ КЛАВИША    │
│  ──────────────────────────────────────    ───────────────────────  ─────────────────  │
│  [1] Синхронизация проектов с бэкапом/NAS  Синхронизация каталогов Shift+F12 (⇧F12)    │
│  [2] Пакетное переименование фото по дате  Групповое переименование Ctrl+M (⌃M)        │
│  [3] Подключение офисного/домашнего NAS    Менеджер сетевых VFS    cm_ManageConnections│
│  [4] Правка файла в архиве .zip            Архивный VFS            Enter ➔ F4 ➔ Save   │
│  [5] Поиск тяжелых файлов в глубине        Плоский вид (Branch)    Cmd+B (⌘B) / Alt+F7 │
│                                                                                        │
│  ПРОБЛЕМА / СИМПТОМ                        ПРИЧИНА                 РЕШЕНИЕ             │
│  ──────────────────────────────────────    ──────────────────────  ──────────────────  │
│  Ошибка "Operation not permitted"          Песочница macOS / TCC   cm_GrantAccess      │
│  Внешние диски не обновляются сами         Нет FSEvents на FAT/exFAT attr_poll_interval│
│  Безопасное тестирование настроек          Защита рабочего XML     ATBCmder_test.sh    │
│  F-клавиши меняют звук/яркость             Медиа-клавиши macOS     Fn или Настройки    │
│  Долгое перемещение между дисками          Копирование + удаление Проверить свободное  │
│                                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────┘

Краткая справочная таблица для двойной матрицы

Действие/Диагностика Сочетание клавиш macOS Классическая клавиша Commander Идентификатор команды Основная цель
Синхронизация каталогов (Sync Dirs) Shift+F12 / ⇧F12 Shift+F12 cm_SyncDirs Сравнивает и синхронизирует деревья каталогов с двумя панелями.
Пакетное многократное переименование Ctrl+M / ⌃M Ctrl+M cm_MultiRename Переименовывает несколько файлов, используя токены, счетчики и RegEx.
Сетевые подключения Меню: Сеть cm_ManageConnections cm_ManageConnections Управляет сохраненными профилями серверов SMB, SFTP, WebDAV и FTP.
Быстрое подключение к сети Меню: Сеть cm_NetworkConnect cm_NetworkConnect Диалог специального подключения для удаленных серверов.
Архивное редактирование на месте F4 / Fn+F4 F4 cm_Edit Редактирует файл внутри архива; запускает RepackWorker при сохранении.
Плоский вид дерева (Flat Branch View) Cmd+B / ⌘B Ctrl+B cm_FlatView Рекурсивно отображает все вложенные файлы в одном плоском списке.
Расширенный поиск Alt+F7 / ⌥F7 Alt+F7 cm_Search Поиск файлов с несколькими фильтрами и выводом «Подача в список».
Предоставить доступ к файловой системе Меню: Файл/Справка — cm_GrantFilesystemAccess Запускает помощник по разрешению песочницы приложений macOS.
Обновление панели вручную Ctrl+R / ⌃R или Cmd+R / ⌘R Ctrl+R cm_Refresh Заставляет немедленно перечитать каталог с диска.
Запуск системного терминала Ctrl+J / ⌃J Ctrl+J cm_RunTerm Создает терминал macOS по текущему пути к панели.
Рассчитать пространство в папке Alt+Shift+Enter (Space) Alt+Shift+Enter (Space) cm_CountDirContent / cm_CalculateSpace Вычисляет совокупный рекурсивный размер байта (Space для одиночного значения, Ctrl+L для выбранного итога).
Безопасное стирание (Wipe) Alt+Delete / ⌥⌫ Alt+Delete cm_Wipe Многопроходная перезапись и безвозвратное удаление файлов.

2. Практические рецепты и готовые сценарии

2.1 Рецепт 1. Сравнение и синхронизация двух папок резервных копий

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

Directory Synchronization Рис. 9.1. Диалоговое окно «Синхронизация каталогов (Sync Dirs)», в котором отображается параллельное сравнение каталогов, стрелки направления копирования и параметры асимметричного зеркалирования.

Пошаговая процедура

  1. Выравнивание источника и цели на двух панелях: – На левой панели перейдите к основному локальному рабочему каталогу (например, ~/Documents/Projects/AppAlpha).

  2. Нажмите Tab, чтобы переключиться на Правую панель и перейдите к целевому месту резервного копирования (например, /Volumes/BackupDrive/Backups/AppAlpha).

  3. Запустить синхронизацию каталогов:
  4. Нажмите Shift+F12 (⇧F12) или выберите Команды ➔ Синхронизировать каталоги... в строке меню.
  5. Откроется диалоговое окно «Синхронизировать каталоги», в котором автоматически заполнятся поля «Левый путь» и «Правый путь».
  6. Настройка параметров сравнения: – Установите флажок Сравнить подкаталоги, чтобы рекурсивно просмотреть все вложенные папки. – Установите флажок Сравнить по содержимому, если вам нужна криптографическая уверенность (проверка байтов файла через filecmp), а не полагаться исключительно на размеры файлов и временные метки модификации.

  7. Убедитесь, что параметр Допуск метки времени FAT/SMB (2,0 секунды) включен, если место назначения резервного копирования использует FAT32, exFAT или общий сетевой ресурс SMB, что предотвращает появление ложных флагов несоответствия, вызванных 2-секундным округлением метки времени файловой системы.

  8. Начать сравнение: – Нажмите Сравнить (или нажмите Alt+C / ⌥C).

  9. ATBCmder запускает обработчик фонового сравнения (SyncCompareWorker) и заполняет таблицу сравнения индикаторами направленного действия:

  10. -> (слева направо): локальный файл более новый или существует только слева. Действие: скопировать слева направо.
  11. <- (Right to Left): The backup file is newer, or only exists on the right. Action: copy right to left.
    • = (Equal): Both files are identical in size and timestamp/content. These are hidden from the pending action list by default.
    • != (Conflict): Incompatible directory-versus-file collision or timestamp mismatch requiring manual inspection.
  12. Select Your Synchronization Strategy:
  13. Two-Way Symmetric Sync (Default): Copies newer files in both directions (-> и <-). No files are deleted on either side. Ideal for syncing collaborative folders between machines.
  14. Asymmetric Mirroring (Asymmetric Checkbox Enabled): Makes the Right directory an exact binary replica of the Left directory. Any file on the Right that does not exist on the Left is permanently deleted from the backup target.
  15. Review and Execute:
  16. Inspect the summary count at the bottom: e.g., "Left to Right: 42 files (128.4 MB) | Right to Left: 0 files | Deletes: 3 files".
  17. Click Synchronize to launch the non-blocking background transfer queue. Progress bars reflect active transfer volume and remaining item counts.

[!ВНИМАНИЕ] Опасность потери данных при асимметричном зеркалировании: Если установлен флажок Асимметричный режим, файлы, присутствующие на целевом диске, которые были удалены или переименованы на исходном диске, будут навсегда удалены без перемещения в корзину macOS. Всегда просматривайте таблицу сравнения направлений, прежде чем нажимать «Синхронизировать»!

Tip

⚡Совет для профессионалов: проверка носителя и кода на уровне контента: При резервном копировании видеоматериалов или репозиториев Git размеры файлов могут совпадать, но при этом существуют незначительные внутренние повреждения байтов. Всегда проверяйте Сравнить по содержимому для критически важных архивов. Хотя побайтовое сравнение через USB или Wi-Fi занимает больше времени, оно гарантирует 100% целостность данных.


2.2 Рецепт 2. Пакетное переименование фотографий с камеры с указанием дат и порядковых номеров

Цель: преобразовать сотни неорганизованных файлов камер (например, DSC_0012.JPG, DSC_0013.JPG, IMG_4901.CR3) в понятные, сортируемые имена файлов, такие как 2026-09-06_Vacation_001.jpg, со счетчиками последовательностей с нулевым заполнением и предварительным просмотром безопасности в реальном времени.

Batch Multi-Rename Tool Рис. 9.2. Инструмент пакетного множественного переименования с функциями предварительного просмотра строк в реальном времени, маркерами метаданных, элементами управления числовыми счетчиками и обнаружением коллизий.

Пошаговая процедура

  1. Выберите фотографии:
  2. Перейдите в каталог импорта камеры на активной панели. – Выберите все фотографии, используя Cmd+A (⌘A) или нажмите + на клавиатуре, чтобы ввести подстановочную маску, например *.jpg;*.jpeg;*.cr3;*.arw.

  3. Запустите инструмент пакетного множественного переименования:

  4. Нажмите Ctrl+M (⌃M) или Cmd+M (⌘M) или выберите Файлы ➔ Инструмент многократного переименования... в строке меню.
  5. Определите маску имени файла:
  6. В поле Маска имени файла введите желаемую структуру, используя токены метаданных:

    [Y]-[M]-[D]_Vacation_[C]
    

  7. Пояснение токена:

  8. [Y]: 4-значный год модификации файла (например, 2026).
  9. [M]: двухзначный месяц (например, 09).
  10. [D]: день из двух цифр (например, 06).
  11. Vacation: статический описательный текст.
  12. [C]: Последовательный числовой счетчик.
  13. Настройте встречную последовательность: – На карточке Настройки счетчика:

  14. Начало: 1

  15. Шаг: 1
  16. Цифры: 3 (при этом применяется заполнение нулями: 001, 002, 003... до 999).
  17. Удаление префиксов камеры с помощью функции «Найти и заменить» (необязательно):
  18. Если вы хотите сохранить часть исходного имени файла без префикса камеры (например, сохранив порядковый номер камеры из DSC_8941.JPG):
  19. Установите для Маски имени файла значение: [YMD]_[N5-].
  20. [N5-] извлекает символы от индекса 5 до конца имени, полностью удаляя DSC_. – Альтернативно используйте поля Поиск и замена:

  21. Найти: DSC_

  22. Заменить: Photo_
  23. Установите флажок RegEx, если используете сложные шаблоны выражений, например ^IMG_(\d+).
  24. Осмотрите таблицу предварительного просмотра:
  25. Таблица из трех столбцов (Old Name, New Name, Directory) обновляется мгновенно при каждом нажатии клавиши.
  26. Проверьте столбец Статус: ATBCmder выделяет повторяющиеся имена целей жирным красным цветом с индикатором столкновения, предотвращая случайную перезапись.
  27. Выполните переименование:
  28. Нажмите Enter или нажмите Начать переименование. ATBCmder автоматически выполняет переименование на диске и обновляет вид панели.

Note

Безопасность расширений: По умолчанию для Маски расширения установлено значение [E], при этом исходное расширение файла сохраняется неизмененным. Никогда не удаляйте [E], если вы явно не намерены удалить расширения из своих файлов.

Tip

⚡Совет для профессионалов: Рабочий процесс внешнего редактора (⌘I): Если у вас нерегулярный список имен клиентов или названий треков, нажмите Cmd+I (⌘I / Редактировать во внешнем редакторе) в инструменте многократного переименования. ATBCmder экспортирует целевые имена в текстовый редактор по умолчанию. Отредактируйте список в Vim, VS Code или TextEdit, сохраните документ, и ATBCmder немедленно импортирует измененные имена в сетку предварительного просмотра.


2.3 Рецепт 3. Подключение к домашнему/офисному NAS через SMB, SFTP или WebDAV

Цель: смонтируйте локальный пул хранения данных TrueNAS или Synology, Linux-сервер AWS EC2 или облачный репозиторий Nextcloud WebDAV на вкладку с двумя панелями без манипулирования отдельными командами терминала или листами подключения Finder.

Remote VFS Connection Рисунок 9.3: Настройка защищенных удаленных сетевых ресурсов по протоколам SMB, SFTP и WebDAV.

Пошаговая процедура

  1. Откройте диспетчер сетевых подключений:
  2. Выберите Сеть ➔ Управление сетевыми подключениями... в основной строке меню или выполните команду cm_ManageConnections.
  3. Создайте новый профиль подключения:
  4. Нажмите кнопку ➕ New в левом нижнем углу. – В поле Метка введите узнаваемый идентификатор (например, Synology Office NAS или AWS Production Web).

  5. Настройка протокола и сведений о хосте:

  6. Протокол: выберите целевой протокол из раскрывающегося списка:
  7. SMB/CIFS: Порт 445 (стандарт для Synology, QNAP, Windows Server, TrueNAS).
  8. SFTP (передача файлов по SSH): порт 22 (стандарт для облачных экземпляров Linux/UNIX).
  9. WebDAV/WebDAVS: порт 80 или 443 (стандарт для Nextcloud, ownCloud).
  10. FTP/FTPS: порт 21 или 990 (устаревшие файловые хосты).
  11. Хост: введите IP-адрес или имя домена (например, 192.168.1.100 или sftp.mycompany.com).
  12. Порт: устанавливается автоматически при выборе протокола; отрегулируйте, если ваш сервер использует нестандартный порт.
  13. Имя пользователя: введите имя пользователя учетной записи удаленной системы.
  14. Удаленный путь: установите целевой каталог по умолчанию (например, /volume1/Media или /var/www/html).
  15. Безопасное хранилище учетных данных:
  16. Введите свой пароль или ключ доступа. – Установите флажок Запомнить пароль в связке ключей macOS.

  17. Гарантия безопасности: ATBCmder никогда не сохраняет учетные данные в виде открытого текста в файлах конфигурации XML. Все секреты криптографически запечатаны внутри собственной связки ключей Apple (com.aitobox.atbcmder.vfs).

  18. Проверьте соединение:
  19. Нажмите 🔍 Test Connection.
  20. ATBCmder отправляет фонового работника (ConnectionTestWorker), который проверяет доступность сети, проверяет ключи хоста SSH или сертификаты TLS, проверяет учетные данные и отображает предупреждение об успехе, не закрывая диалоговое окно.
  21. Подключайтесь и просматривайте:
  22. Нажмите 🔗 Connect (или нажмите Enter).
  23. На активной панели открывается новая вкладка папки, отображающая удаленный путь в формате единого URI VFS:

    vfs://smb://admin@192.168.1.100/volume1/Media/
    vfs://sftp://ubuntu@aws.prod.internal:22/var/www/html/
    

  24. Теперь вы можете просматривать, искать, копировать (F5), перемещать (F6) и удалять (F8) файлы на локальных дисках и удаленных серверах с одинаковой гибкостью двух панелей.

  25. Быстрое переподключение из строки меню:
  26. Все сохраненные профили автоматически появляются в разделе Сеть ➔ Сохраненные подключения. Просто щелкните любой сохраненный сервер, чтобы мгновенно его смонтировать.

Tip

⚡Совет для профессионалов: аутентификация на основе ключей SSH для SFTP: Для автоматического доступа к облачному серверу настройте аутентификацию с открытым ключом. В профиле подключения SFTP оставьте поле пароля пустым и укажите свой локальный закрытый ключ (например, ~/.ssh/id_ed25519). Если ключ защищен парольной фразой, ATBCmder запрашивает его один раз и надежно сохраняет в вашей связке ключей macOS.


2.4 Рецепт 4. Редактирование файла непосредственно внутри архива без его распаковки

Цель: изменить вложенный файл конфигурации (settings.json или config.yaml) внутри многогигабайтного архива .zip, .tar.gz или .7z в локальном хранилище или на удаленном сервере, не распаковывая весь архив на жесткий диск.

Archive VFS Рисунок 9.4: Навигация и редактирование внутри сжатых архивов с помощью единой виртуальной файловой системы vfs://.

Пошаговая процедура

  1. Войдите в архив как в виртуальный каталог:
  2. Выделите файл архива (например, production_backup.zip) на активной панели.
  3. Нажмите Enter (или дважды щелкните мышью). — ATBCmder перехватывает навигацию и монтирует архив как виртуальную файловую систему:

    vfs:///Users/brain/Downloads/production_backup.zip/
    

  4. Перейдите к целевому файлу:

  5. Просматривайте вложенные виртуальные каталоги (etc, nginx, conf.d) так же, как на физическом томе.
  6. Найдите файл, который необходимо обновить (например, nginx.conf или app_settings.json).
  7. Открыть во встроенном текстовом редакторе:
  8. Нажмите F4 (Fn+F4 / cm_Edit).
  9. ATBCmder передает сжатый элемент во временный изолированный буфер и открывает его непосредственно в текстовом редакторе с подсветкой синтаксиса.
  10. Внесите изменения и сохраните:
  11. Внесите необходимые изменения в конфигурацию.
  12. Нажмите Cmd+S (⌘S), чтобы сохранить буфер.
  13. Жизненный цикл автоматической повторной упаковки (RepackWorker):
  14. Когда вы сохраняете или закрываете редактор, автоматически активируется механизм фоновой перепаковки ATBCmder (RepackWorker):
  15. Он вычисляет разницу между исходным сжатым элементом и измененным буфером.
  16. Он проверяет общий размер архива на соответствие настроенному порогу предупреждения (ArchiveRepackWarningMB).
  17. Он повторно сжимает измененный файл и перестраивает структуру архива во временный файл.
  18. Он атомарно заменяет исходный архивный файл на диске, гарантируя отсутствие повреждений в случае отключения питания системы во время записи.
  19. Вид активной панели автоматически обновляется и отображает обновленные размеры элементов в байтах и ​​временные метки.

Important

Защитник репаков большого архива (ArchiveRepackWarningMB): Обновление одного текстового файла размером 2 КБ внутри архива размером 15 ГБ требует перезаписи всего архивного файла на диске. Чтобы предотвратить неожиданные скачки нагрузки на процессор и износ SSD, ATBCmder проверяет размер архива. Если размер архива превышает ArchiveRepackWarningMB (по умолчанию: 500 МБ), появится диалоговое окно с предупреждением: * «Этот архив имеет размер 1,4 ГБ. При перепаковке будет перезаписан весь файл. Хотите продолжить?»* Вы можете настроить это пороговое значение в разделе Конфигурация ➔ Параметры ➔ Архивы.


2.5 Рецепт 5. Поиск и удаление больших раздутых файлов во вложенных каталогах

Цель: Освободите ценную емкость SSD, быстро находя и безопасно удаляя заброшенные рендеры видео 4K, раздутые папки node_modules, образы виртуальных дисков Docker или устаревшие установщики DMG, разбросанные глубоко в многоуровневых структурах каталогов.

Flat Branch View Рис. 9.5. Представление «Плоская ветвь» (Cmd+B), отображающее глубоко вложенное содержимое в одной плоской таблице для мгновенной сортировки по размеру.

Метод А: мгновенное сведение с помощью представления плоской ветви (Cmd+B)

  1. Перейдите к родительской корневой папке: – Выделите родительскую папку верхнего уровня, которую вы хотите проверить (например, ~/Projects или ~/Downloads).

  2. Активировать вид плоской ветви:

  3. Нажмите Cmd+B (⌘B) или Ctrl+B (cm_FlatView) или выберите Показать ➔ Вид ветвей (плоский вид).
  4. ATBCmder рекурсивно сканирует все подкаталоги и отображает каждый вложенный файл в едином плоском списке, стирая границы папок каталога.
  5. Сортировка по убыванию размера: – Нажмите заголовок столбца Размер или нажмите Ctrl+F6 (cm_SortBySize), чтобы отсортировать самые большие файлы вверху.

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

  7. Рассчитать пространство каталога:
  8. Чтобы подпапки отображались в стандартном представлении, поместите курсор на любую папку и нажмите Space (␣ / cm_CalculateSpace). ATBCmder вычисляет общий рекурсивный объем байтов и отображает его вместо метки по умолчанию <DIR>.
  9. Выход из режима просмотра ветвей:
  10. Нажмите Cmd+B еще раз или нажмите Esc / Backspace на .., чтобы вернуться к обычной иерархической навигации по каталогам.

Метод Б: целевая фильтрация с помощью расширенного поиска (Alt+F7) и «Подача в список»

Advanced Search Рис. 9.6. Диалоговое окно «Расширенный поиск» с критериями фильтра по размеру и кнопкой «Подать в список».

  1. Запустить расширенный поиск:
  2. Нажмите Alt+F7 (⌥F7) или выберите Команды ➔ Поиск....
  3. Определение фильтров размера и типа: – В поле Искать в подтвердите корневой каталог.

  4. Проверьте фильтр Размер: выберите > и введите 100 с единицей измерения MB (или 1 GB). – В поле Маска файла укажите целевые расширения (например, *.dmg;*.iso;*.mp4;*.mov;*.zip) или оставьте *, чтобы найти любой раздутый элемент. – На вкладке Дата при желании можно ограничить результаты файлами, не изменявшимися в течение последних 180 дней.

  5. Выполнить поиск: – Нажмите Начать поиск.

  6. Передача результатов на вкладку виртуальной панели («Подача в список»): – После заполнения результатов нажмите кнопку Передать в список.

  7. Весь набор результатов поиска переносится на специальную виртуальную вкладку на активной панели.

  8. В отличие от статического модального диалогового окна, файлы на этой вкладке ведут себя как обычные элементы панели файлов: вы можете просмотреть их с помощью быстрого просмотра (Ctrl+Q / ⌘Q), просмотреть их в Universal Lister (F3) или пометить несколько файлов с помощью Insert / Space.
  9. Просмотреть и удалить:
  10. Выберите ненужные файлы и нажмите F8 (Fn+F8 / cm_Delete), чтобы безопасно переместить их в корзину macOS.
  11. Если вам необходимо безвозвратно и безвозвратно удалить данные (например, очистить конфиденциальные данные клиента), нажмите Alt+Delete (⌥⌫ / cm_Wipe), чтобы запустить безопасное многопроходное уничтожение файлов.

Tip

⚡Совет для профессионалов: выявление идентичных повторяющихся файлов с помощью контрольных сумм: Если вы подозреваете, что несколько больших файлов являются точными дубликатами, выберите их и нажмите Ctrl+X (⌃X / cm_CheckSumCalc). Выберите SHA-256 и нажмите «Рассчитать». Соответствующие хеш-дайджесты подтверждают 100% двоичные дубликаты, что позволяет с полной уверенностью удалять лишние копии.


3. Руководство по устранению неполадок и часто задаваемые вопросы (FAQ)

3.1 Ошибки «Операция не разрешена» / macOS «Отказано в доступе»

Первопричина

В современных macOS (от macOS 12 Monterey до macOS 15 Sequoia) Apple обеспечивает строгие границы конфиденциальности App Sandbox и TCC (Прозрачность, согласие и контроль). Приложения в песочнице не могут получить доступ к внешним дискам, системным папкам или даже стандартным пользовательским каталогам (~/Documents, ~/Downloads, ~/Desktop) без явно предоставленного пользователем криптографического токена разрешения, известного как Закладка области безопасности.

Если ATBCmder не предоставлен доступ к файловой системе, вы можете столкнуться:

— В диалоговых окнах операций с файлами отображается: "Error: Operation not permitted".

  • Каталоги кажутся пустыми, хотя файлы существуют в Finder.
  • На внешних дисках USB или Thunderbolt под номером /Volumes отображаются ошибки отказа в доступе.

Решение 1. Используйте помощник по адаптации тестовой среды приложения (cm_GrantFilesystemAccess).

ATBCmder включает в себя встроенный помощник по адаптации, предназначенный для регистрации постоянных закладок безопасности в macOS:

┌─────────────────────────────────────────────────────────────┐
│  Предоставить доступ к диску (Filesystem Access)        [x] │
├─────────────────────────────────────────────────────────────┤
│  Так как ATBCmder работает в изолированной песочнице macOS, │
│  требуется ваше разрешение для доступа к системным папкам   │
│  и внешним накопителям.                                     │
│                                                             │
│  [  Предоставить доступ к корню (/)  ]                      │
│                                                             │
│  [  Предоставить доступ к дискам (/Volumes)  ]              │
│                                                             │
│  [  Открыть настройки полного доступа к диску…  ]           │
│                                                             │
│  Доступ к корню обязателен для песочницы приложения.        │
│  Полный доступ к диску защищает личные данные.              │
│                                                 [ Готово ]  │
└─────────────────────────────────────────────────────────────┘
  1. В строке меню выберите Файл (или Справка) ➔ Предоставить доступ к файловой системе… или вызовите команду cm_GrantFilesystemAccess.
  2. Нажмите "Предоставить доступ к корневому каталогу (/)".
  3. Когда появится собственный лист Apple NSOpenPanel, указывающий на Macintosh HD (/), нажмите Предоставить доступ (или Открыть).
  4. Почему это работает: При авторизации / создается корневая закладка с областью безопасности, хранящаяся в sandbox_bookmarks.plist. Поскольку дочерние пути наследуют токены безопасности вниз, предоставление доступа к / навсегда разблокирует все стандартные пользовательские папки (~/Documents, ~/Downloads, /Applications, ~/Projects).
  5. Нажмите ** «Предоставить доступ к внешним дискам (/Volumes)»**.
  6. На открытом листе нажмите Предоставить доступ для /Volumes.
  7. Это авторизует все подключенные USB-накопители, внешние твердотельные накопители, SD-карты, образы дисков (DMG) и сетевые подключения SMB.
  8. Нажмите Готово. Ваши разрешения сохраняются навсегда при перезапуске приложения.

Решение 2. Предоставьте полный доступ к диску (FDA) в настройках системы macOS

Если вам необходимо управлять защищенными системными расположениями, такими как ~/Library/Mail, ~/Library/Messages, кэшами просмотра Safari или деревьями резервных копий Time Machine, для macOS TCC требуются дополнительные права на уровне системы:

  1. Откройте Системные настройки (меню Apple  ➔ Системные настройки).
  2. Перейдите в раздел Конфиденциальность и безопасность ➔ Полный доступ к диску.
  3. Найдите ATBCmder в списке приложений и установите переключатель в положение Вкл..
  4. Если ATBCmder нет в списке:
  5. Нажмите кнопку + внизу.
  6. Выполните аутентификацию с помощью пароля Mac или Touch ID.
  7. Выберите /Applications/ATBCmder.app и нажмите Открыть.
  8. Когда будет предложено перезапустить приложение, нажмите Выйти и открыть заново.

Решение 3. Сброс поврежденных разрешений конфиденциальности TCC через терминал

Если разрешения повреждены после обновления операционной системы macOS или события повторной подписи приложения, сбросьте базу данных TCC с помощью инструмента командной строки macOS tccutil:

# Reset all Full Disk Access permissions for ATBCmder
tccutil reset SystemPolicyAllFiles com.aitobox.atbcmder

# Reset Desktop, Documents, and Downloads folder permissions
tccutil reset SystemPolicyDocumentsFolder com.aitobox.atbcmder
tccutil reset SystemPolicyDownloadsFolder com.aitobox.atbcmder
tccutil reset SystemPolicyDesktopFolder com.aitobox.atbcmder

После выполнения этих команд перезапустите ATBCmder и повторно запустите cm_GrantFilesystemAccess.


3.2 Автоматическое обновление не обнаруживает изменений файлов на диске

Первопричина

ATBCmder использует многоуровневый механизм мониторинга файлов:

  1. Ядро FSEvents: На собственных томах Apple APFS и HFS+ ядро macOS генерирует мгновенные события мутации каталога, когда файлы добавляются, изменяются или удаляются внешними инструментами.
  2. Ограничения файловой системы: файловые системы сторонних производителей (например, внешние USB-накопители, отформатированные как FAT32 или exFAT) и удаленные сетевые подключения (SMB, NFS, SFTP, WebDAV) не поддерживают уведомления ядра FSEvents. Когда стороннее приложение создает или удаляет файл на общем ресурсе SMB, ядро ​​macOS не получает никаких уведомлений.

Шаги разрешения

  1. Настройте резервный интервал опроса (attr_poll_interval):
  2. Откройте настройки через Cmd+, (⌘,) или Конфигурация ➔ Параметры.... – Перейдите на страницу Автообновление. – Убедитесь, что включены параметры Отслеживать изменение имени файла и Отслеживать изменение атрибутов.

  3. Настройте Интервал опроса (attr_poll_interval):

  4. По умолчанию: 5 seconds.
  5. Для быстрого локального тестирования или активного развития сети: уменьшите до 1 или 2 seconds.
  6. Для общих ресурсов Wi-Fi с высокой задержкой: увеличьте значение до 10 или 15 seconds, чтобы минимизировать нагрузку на сеть.
  7. Проверьте список исключенных каталогов: – На той же странице настроек Автообновления просмотрите таблицу Исключенные каталоги.

  8. Если ваш активный путь (или родительская папка) был добавлен в список исключений, ATBCmder намеренно подавляет мониторинг файлов для экономии ресурсов процессора. Удалите путь, если хотите снова включить мониторинг.

  9. Проверьте настройки фонового обновления:
  10. Если файловые панели не обновляются только тогда, когда ATBCmder свернут или находится за другими окнами, установите флажок: [ ] Disable auto-refresh when ATBCmder is in the background

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

  12. Принудительное немедленное обновление вручную:
  13. В любой момент нажмите Ctrl+R (⌃R) или Cmd+R (⌘R) (cm_Refresh). — При этом обходят все уровни кэширования, очищаются внутренние модели каталогов и немедленно перечитывается содержимое каталога из контроллера хранилища.

3.3 Безопасный сброс конфигурации или тестирование в изолированном режиме тестирования

Безопасное тестирование новых конфигураций с помощью scripts/ATBCmder_test.sh

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

ATBCmder предоставляет изолированный сценарий запуска тестов:

# Run ATBCmder in an isolated test environment
./scripts/ATBCmder_test.sh

Как это работает:

  1. Скрипт создает выделенный временный каталог: tests/.test_config/.
  2. Он копирует чистую базовую тестовую конфигурацию (src/atbcmder/resources/test_config.xml) в tests/.test_config/atbcmder.xml.
  3. Он экспортирует переменную среды:

    export ATBCMDER_CONFIG_PATH="$(pwd)/tests/.test_config"
    

  4. При запуске ATBCmder считывает все настройки исключительно из этой тестовой папки. Любые изменения, модификации вкладок или эксперименты с горячими клавишами полностью содержатся в tests/.test_config/, оставляя ваши личные настройки совершенно нетронутыми.

Восстановление заводской конфигурации по умолчанию

Если ваша производственная конфигурация повреждена или вы хотите начать все заново:

  1. Полностью закройте ATBCmder (Cmd+Q / ⌘Q).
  2. Откройте терминал macOS и найдите каталог конфигурации:
  3. Стандартная установка: ~/Library/Настройки/atbcmder/
  4. Резервный вариант Linux/XDG: ~/.config/atbcmder/
  5. Создайте резервную копию или удалите активные файлы конфигурации:

    # Move configuration files to a backup location
    mv ~/Library/Preferences/atbcmder/atbcmder.xml ~/Library/Preferences/atbcmder/atbcmder.xml.bak
    mv ~/Library/Preferences/atbcmder/atbcmder_hotkeys.xml ~/Library/Preferences/atbcmder/atbcmder_hotkeys.xml.bak
    

  6. Перезапустите ATBCmder.

  7. При запуске ATBCmder обнаруживает отсутствующие файлы конфигурации и автоматически восстанавливает чистые, проверенные конфигурации XML, заполненные официальными заводскими настройками по умолчанию.

Экспорт и импорт портативных конфигураций

Чтобы перенести конфигурацию на несколько компьютеров Mac или создать внешнюю резервную копию:

  • Экспорт: выберите Конфигурация ➔ Экспортировать конфигурацию... (команда cm_ExportConfiguration), чтобы сохранить объединенный снимок .zip или .xml, содержащий ваши горячие клавиши, столбцы, избранные вкладки и цветовые палитры.
  • Импорт: выберите Конфигурация ➔ Импортировать конфигурацию... (команда cm_ImportConfiguration) на целевом компьютере, чтобы мгновенно восстановить настройки.

3.4 Функциональные клавиши, запускающие яркость/громкость macOS вместо команд

Первопричина

По умолчанию клавиатуры Apple (встроенные клавиатуры MacBook, клавиатуры Magic Keyboards) присваивают верхнему ряду клавиш специальные аппаратные функции:

  • F1 / F2: уменьшение/увеличение яркости дисплея.
  • F3: Управление полетом
  • F4: Прожектор / Панель запуска
  • F7 / F8 / F9: элементы управления воспроизведением мультимедиа (перемотка назад, воспроизведение/пауза, перемотка вперед)
  • F10 / F11 / F12: отключение звука, уменьшение громкости, увеличение громкости.

Когда вы нажимаете F5 в надежде скопировать файл, macOS перехватывает нажатие клавиши и ничего не делает (или регулирует подсветку клавиатуры).

Решение 1. Используйте аккорд-модификатор Fn.

Удерживайте клавишу Fn (функция) или глобус (🌐) в левом нижнем углу клавиатуры, одновременно нажимая функциональную клавишу:

  • Fn+F3: Универсальный список (cm_View)
  • Fn+F4: текстовый редактор (cm_Edit)
  • Fn+F5: копирование файлов (cm_Copy)
  • Fn+F6: перемещение/переименование файлов (cm_Rename)
  • Fn+F7: создать новую папку (cm_MakeDir)
  • Fn+F8: удалить в корзину (cm_Delete)
  • Fn+Shift+F12: синхронизировать каталоги (cm_SyncDirs)

Решение 2. Включите стандартные функциональные клавиши для всей системы в настройках macOS

Если вы регулярно используете ATBCmder, рекомендуется настроить macOS для обработки функциональных клавиш как стандартных клавиш F1-F12:

  1. Откройте Системные настройки (меню Apple  ➔ Системные настройки).
  2. Выберите Клавиатура на левой боковой панели.
  3. Нажмите кнопку Сочетания клавиш....
  4. Выберите Функциональные клавиши в левом списке модального листа.
  5. Включите тумблер: "Используйте клавиши F1, F2 и т. д. как стандартные функциональные клавиши"

  6. Нажмите Готово.

┌─────────────────────────────────────────────────────────────┐
│  Сочетания клавиш                                           │
├──────────────────────────────┬──────────────────────────────┤
│  Навигация с клавиатуры      │  Использовать F1, F2 как     │
│  Клавиши модификаторы        │  стандартные клавиши    [ВКЛ]│
│  Функциональные клавиши ◄─── │                              │
│  Spotlight                   │  Если этот параметр включен, │
│  Mission Control             │  нажмите клавишу Fn для      │
│  Сочетания клавиш apps       │  специальных медиа-функций   │
│                              │  на каждой клавише.          │
│                              │                   [ Готово ] │
└──────────────────────────────┴──────────────────────────────┘

Результат: нажатие F5 теперь напрямую запускает копирование в ATBCmder. Чтобы отрегулировать яркость или громкость, удерживайте Fn, одновременно нажимая клавишу.

Решение 3. Используйте собственные эквиваленты ключей Cmd macOS

Если вы предпочитаете не изменять настройки системной клавиатуры, ATBCmder предоставляет встроенные сочетания клавиш macOS для каждой основной операции:

  • Копия: Cmd+C / Cmd+V (или стандартный F5)
  • Переместить: Cmd+C ➔ Cmd+Option+V (⌥⌘V переместить и вставить)
  • Удалить: Cmd+Delete (⌘⌫)
  • Новая папка: Shift+Cmd+N (⇧⌘N)
  • Переименовать: F2 или Return.
  • Пакетное многократное переименование: Ctrl+M (⌃M) или Cmd+M (⌘M)
  • Предпочтения: Cmd+, (⌘,)
  • Закрыть вкладку: Cmd+W (⌘W)

3.5 Перемещение файлов на разные диски по сравнению с одним и тем же диском

Частый вопрос пользователей: почему перемещение файла размером 20 ГБ внутри одной папки занимает доли секунды, а перемещение того же файла на внешний диск или в сетевую папку занимает несколько минут.

Перемещение внутри тома (тот же диск/раздел APFS)

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                     ПЕРЕМЕЩЕНИЕ В ПРЕДЕЛАХ ОДНОГО ТОМА (МГНОВЕННО)                     │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│   Источник: /Users/brain/Downloads/BigFile.iso ➔ Цель: /Users/brain/Movies/            │
│                                                                                        │
│   1. Вызов POSIX rename() лишь обновляет запись inode в файловой системе.              │
│   2. Физические блоки данных на SSD НИКОГДА не считываются и не копируются повторно.   │
│   3. Время выполнения: < 5 миллисекунд. Требуемое свободное место: 0 байт.             │
│                                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────┘

Если пути источника и назначения находятся на одном физическом томе файловой системы, ATBCmder выдает атомарный системный вызов POSIX rename(). Операционная система просто обновляет записи указателей в каталоге каталогов файловой системы. Физические кластеры данных на вашем SSD не перемещаются.

Перемещение между томами (разные диски/разделы/сетевые подключения)

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                      ПЕРЕМЕЩЕНИЕ МЕЖДУ ДИСКАМИ (КОНВЕЙЕР ДАННЫХ)                       │
├────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                        │
│   Источник: /Users/brain/Downloads/BigFile.iso ➔ Цель: /Volumes/ExternalSSD/Movie/     │
│                                                                                        │
│   Этап 1: Потоковое копирование (Чтение с SSD ➔ Запись на внешний SSD)                 │
│   Этап 2: Проверка целостности и сброс (fsync гарантирует завершение физической записи)│
│   Этап 3: Безопасное удаление источника (Исходный файл удаляется только после Этапа 2) │
│                                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────┘

При переносе через разные границы файловой системы (например, с внутреннего SSD Mac на внешний USB-накопитель, сетевой ресурс SMB или образ диска) обновление атомарного указателя физически невозможно. ATBCmder выполняет многоэтапный конвейер Копирование-Проверка-Удаление:

  1. Чтение/запись двоичного потока: данные передаются порциями из исходного контроллера хранилища через системную память и записываются в целевой контроллер хранилища. Длительность передачи полностью зависит от скорости физической шины (например, USB 3.0 со скоростью ~ 100 МБ/с против Thunderbolt 4 со скоростью ~ 2800 МБ/с).
  2. Очистка буфера и проверка: ATBCmder вызывает fsync() для дескриптора целевого файла, чтобы убедиться, что все кэшированные данные записаны на физический носитель, и проверяет эквивалентность количества байтов.
  3. Безопасное удаление источника: только после того, как целевой файл будет полностью записан и проверен, ATBCmder удаляет исходный файл с исходного диска.

Критические последствия и гарантии безопасности

  • Требования к свободному пространству: целевой диск должен иметь достаточную свободную емкость для хранения всей полезной нагрузки файла до начала операции. Если вы попытаетесь переместить файл размером 30 ГБ на внешний диск, где свободно только 10 ГБ, перенос не удастся.
  • Гарантия нулевой потери данных: если внешний диск случайно отключается или если во время передачи в целевом хранилище заканчивается место, ATBCmder немедленно прерывает операцию, оставляет исходный файл полностью нетронутым и невредимым, удаляет любую часть целевого файла и сообщает об ошибке в диалоговом окне.
  • Фоновый мониторинг очереди (cm_OperationsPanel): длительные перемещения между томами выполняются в асинхронных фоновых рабочих потоках (FileOpWorker). Вы можете отслеживать скорость передачи в реальном времени, оставшееся время, приостанавливать/возобновлять передачу или ставить в очередь последующие операции, не блокируя пользовательский интерфейс.

3.6 Дополнительные часто задаваемые вопросы

Вопрос 1. Как переключить фокус между левой и правой панелями?

Нажмите кнопку Tab (⇥). Фокус мгновенно переключается между активными и неактивными таблицами файлов. На активной панели отображается выделенная граница и выделенный текст строки состояния.

Вопрос 2. Как поменять местами содержимое левой и правой панелей?

Нажмите Ctrl+U (⌃U) или выполните команду cm_Exchange. Каталоги, вкладки папок и положения курсора на левой и правой панелях мгновенно меняются местами. Чтобы выровнять ширину панели до точного разделения 50/50, дважды щелкните в любом месте вертикального среднего разделителя.

Вопрос 3. Как выбрать файлы, используя шаблоны подстановочных знаков?

Нажмите клавишу + на клавиатуре (или выберите Отметить ➔ Выбрать группу... / cm_MarkPlus). Введите шаблон подстановочного знака, например *.pdf или photo_2026_*.jpg. Чтобы отменить выбор файлов, соответствующих шаблону, нажмите клавишу - (cm_MarkMinus). Чтобы инвертировать текущий выбор, нажмите * (cm_MarkInvert).

Вопрос 4. Как переключить видимость скрытых точечных файлов?

Нажмите Cmd+H (⌘H) или Cmd+Shift+Period (⇧⌘.) или выполните команду cm_ShowSysFiles. Скрытые файлы Unix (файлы, начинающиеся с точки, такие как .zshrc, .gitignore, .env) немедленно переключаются между видимым и скрытым состояниями.

Вопрос 5. Как открыть окно терминала macOS в текущем каталоге?

Нажмите Ctrl+J (⌃J) или выполните команду cm_RunTerm. ATBCmder запускает новый сеанс терминала macOS (или iTerm2), в котором его текущий рабочий каталог установлен на точный путь к вашей активной файловой панели.

Вопрос 6. Поддерживает ли ATBCmder компьютеры Mac с процессором Intel (x86_64)?

Да! Начиная с версии 1.8.0, ATBCmder предоставляет универсальные бинарные пакеты с нативной поддержкой как Apple Silicon (M1/M2/M3/M4, архитектура ARM64), так и компьютеров Mac с процессором Intel (x86_64) под управлением macOS 12.0 или новее.


4. Советы профессионалов и контрольный список обслуживания системы

Чтобы ATBCmder работал с максимальной скоростью в корпоративных рабочих процессах:

  • Еженедельное обслуживание кэша. Если вы часто просматриваете карты камер с высоким разрешением, периодически очищайте временные кэши миниатюр с помощью Конфигурация ➔ Параметры ➔ Миниатюры ➔ Очистить кэш миниатюр, чтобы освободить место на диске.
  • Аудит связки ключей: если вы меняете пароли на удаленных серверах SFTP или SMB, обновите свои учетные данные в ATBCmder через Сеть ➔ Управление сетевыми подключениями.... Редактирование и сохранение автоматически обновляет соответствующий элемент учетных данных в вашей связке ключей macOS.
  • Фоновая оптимизация очереди: для передачи нескольких гигабайт по сетям со скоростью 1 Гбит/с или 10 Гбит/с настройте размеры буфера фрагментов в разделе Конфигурация ➔ Параметры ➔ Операции с файлами, чтобы максимизировать загрузку шины.
  • Сохранять разрешения UNIX: при копировании сценариев или скомпилированных двоичных файлов между дисками APFS macOS убедитесь, что в диалоговом окне копирования (F5) установлен флажок Сохранять атрибуты и разрешения файла, при этом флаги выполнения (chmod +x) сохраняются автоматически.