Как исправить ошибку -36 при копировании файлов на macOS

Быстрое исправление
Ошибка -36 обычно появляется при попытке скопировать файл с одной файловой системы на другую. Чаще всего это связано с так называемыми «ресурсными форками» файлов macOS. Самый простой способ исправить — запустить утилиту dot_clean в Terminal.
Откройте Spotlight (Cmd+Пробел) → введите Terminal → нажмите Enter. Введите команду:
dot_clean /Path/To/Source/DirectoryПример для каталога Загрузки в вашей домашней папке:
dot_clean ~/DownloadsПосле выполнения команды попробуйте скопировать файл снова. В большинстве случаев это решит проблему.
Что делает dot_clean и почему это помогает
Кратко: macOS (HFS+ и некоторые варианты APFS) хранит файлы в двух частях:
- data fork — фактические данные файла;
- resource fork — метаданные: иконки, версии, дополнительные ресурсы.
На файловых системах, которые не поддерживают «двухфорковую» структуру (например, FAT32, некоторые сетевые шаринги), macOS создаёт дополнительные файлы с префиксом . для хранения ресурсных форков. Эти «.»-файлы иногда мешают при копировании и приводят к ошибке -36.
Команда dot_clean просматривает каталог и пытается объединить соответствующие data-файлы и их resource-фork файлы. Это устраняет расхождения, которые вызывают ошибку.
Использовать dot_clean для всего диска (с осторожностью)
Если локальное исправление каталога не помогает, можно просканировать корневую файловую систему. Это требовательно к правам и потенциально рискованно — обязательно сделайте резервную копию всего диска (Time Machine или другой инструмент) перед продолжением.
Пример безопасной проверки (dry run):
sudo dot_clean -n /Опция -n выполнит «пробный» прогон и не внесёт изменений. После проверки и резервного копирования можно запускать dot_clean без -n, но только если вы понимаете, какие изменения будут выполнены.
Важно: перед запуском dot_clean на корневой файловой системе сделайте полную резервную копию. Ошибки при изменении системных или крупных пользовательских данных могут привести к потере информации.
Когда dot_clean не помогает
- Файловый диск физически повреждён или имеет битые секторы.
- Проблема связана с правами доступа, а не с resource-fork файлом.
- Целевая файловая система или сетевой протокол явно препятствует записи.
- Файлы заблокированы или используются другим процессом.
Если dot_clean не решает проблему, переходите к альтернативам ниже.
Альтернативные подходы
- Проверьте диск в Disk Utility → First Aid. Это исправит файловую систему и метаданные в некоторых случаях.
- Создайте ZIP-архив исходного каталога и перенесите архив. Архивация объединит данные и метаданные в одном файле.
cd ~/Downloads
zip -r archive.zip "Имя папки или файла"- Используйте ditto для копирования: ditto умеет сохранять метаданные и форки корректнее при переносе между Mac-дисками и сетями.
ditto /Path/To/Source /Path/To/Destination- Копирование через Terminal с cp -R иногда обходится лучше в простых случаях:
cp -R /Path/To/Source /Path/To/Destination- Если целевой диск отформатирован в FAT32 или exFAT и вы часто передаёте Mac-файлы, рассмотрите форматирование целевого диска в APFS или HFS+ (если это возможно) для совместимости с ресурсными форками.
Мини-методология для устранения ошибки -36
- Попробуйте dot_clean на каталоге-источнике:
- dot_clean ~/Downloads
- Снова выполните копирование. Успех = задача выполнена.
- Если нет — выполните sudo dot_clean -n / для оценки (после резервной копии).
- Примените Disk Utility → First Aid и проверьте SMART диска.
- Попробуйте archiving (zip) или ditto для копирования.
- Если проблема аппаратная — снимите образ данных и восстановите на другом диске.
Чеклист для системного администратора
- Сделать полную резервную копию Time Machine или другой резервной системой.
- Выполнить dot_clean для проблемного каталога.
- Выполнить dry run sudo dot_clean -n / при необходимости.
- Прогнать Disk Utility → First Aid на источнике и целевом диске.
- Попробовать ditto или ZIP, если dot_clean не помог.
- Проверить права доступа и блокировки файлов.
Критерии приёмки
- Файл успешно копируется без ошибки -36.
- Нет оставшихся ненужных файлов с префиксом ._ для копируемых объектов.
- Логи Disk Utility не показывают критических ошибок.
Короткий глоссарий
- Resource fork — метаданные файла, отдельная область, используемая macOS.
- Data fork — основное содержимое файла.
- dot_clean — утилита macOS для слияния data- и resource-файлов.
Примечания по безопасности и резервному копированию
Перед выполнением команд с sudo или перед массовым применением dot_clean делайте резервную копию. Команды, изменяющие множество файлов, могут повлиять на системные файлы или важные пользовательские данные.
Итог
Ошибка -36 чаще всего связана с несовместимостью ресурсных форков между файловыми системами. Начните с простого: dot_clean для проблемного каталога. Если это не помогает — применяйте Dry Run, делайте резервную копию и используйте альтернативные инструменты (ditto, ZIP, Disk Utility). Эти шаги решают большинство случаев и минимизируют риск потери данных.
Если вам помог этот гайд или вы знаете другой рабочий способ — поделитесь в комментариях.