Ошибки · Решение
Linux errno ENOTDIR: что означает и как исправить
Ошибка появляется при разрешении pathname, когда компонент, через который нужно пройти как через directory, имеет другой тип.
Короткий ответ
ENOTDIR означает, что операция разбирает путь как путь через каталог, но один из обязательных компонентов оказался не каталогом. Проверьте структуру пути по сегментам. Символ ENOTDIR надёжнее числового errno: номер зависит от архитектуры.
Что означает ошибка
Ошибка появляется при разрешении pathname, когда компонент, через который нужно пройти как через directory, имеет другой тип.
Возможные причины
- Обычный файл стоит в середине pathname, после него указаны дополнительные сегменты.
- Symlink ведёт на файл, хотя приложение ожидает продолжить путь внутри каталога.
- Переменная с базовой директорией фактически содержит путь к файлу.
Что проверить
- Разбейте pathname на компоненты и выполните `stat` для каждого промежуточного сегмента.
- Проверьте symlink-цели отдельно, особенно для bind mounts и deployment paths.
- Сравните значение baseDir/config path с тем, что приложение добавляет к нему после запуска.
Безопасные шаги
- Исправьте именно ошибочный промежуточный компонент пути или конфигурационную базовую директорию.
- Не создавайте каталог поверх существующего файла до проверки, кому принадлежит этот объект.
- Добавьте валидацию: base directory должна существовать и иметь тип directory до построения дочерних путей.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если ENOTDIR остаётся после проверки всех компонентов pathname, передайте владельцу приложения полный путь, результат `stat/readlink` и системный вызов из `strace`.
Похожие ошибки
- /errors/linux-errno-esrch/
- /errors/linux-errno-eintr/
- /errors/linux-errno-eio/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.