Ошибка «no such file or directory» в ADB: как найти причину и исправить

Команда adb push или простой запуск adb devices завершается сообщением «no such file or directory» — и причина почти всегда в одном из трёх мест: система не находит сам исполняемый файл adb, ADB не находит файл, который вы пытаетесь отправить на устройство, либо путь на самом Android-устройстве указан неверно. Ошибка выглядит одинаково, но лечится по-разному, поэтому первым делом нужно понять, какой именно объект «не найден».

Эта инструкция подходит для Windows, macOS и Linux: синтаксис команд немного отличается, но логика диагностики одинаковая. Ниже разберём каждый сценарий отдельно — от проверки установки Android SDK Platform-Tools до нюансов путей с пробелами и кириллицей.

Шаг 1. Определите, что именно «не найдено»

Прежде чем что-то исправлять, внимательно прочитайте полный текст ошибки. Сообщение adb: no such file or directory возникает в разных ситуациях, и контекст подскажет направление поиска:

  • 🔍 Терминал пишет adb: command not found или «не является внутренней или внешней командой» — система вообще не видит утилиту ADB.
  • 📁 Ошибка появляется при adb push file.apk /sdcard/ — не найден локальный файл на компьютере.
  • 📱 Ошибка при adb pull или обращении к пути на устройстве — не существует путь на самом смартфоне.
  • ⚙️ Ошибка возникает при запуске скрипта — возможно, повреждена сама утилита или не хватает библиотек.

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

Шаг 2. Проверьте, установлен ли ADB и виден ли он системе

Самый частый сценарий — вы вводите adb в командной строке, а операционная система не знает, где искать исполняемый файл. Это происходит, если Platform-Tools не добавлены в переменную окружения PATH или вы запускаете команду не из той папки.

Быстрая проверка: откройте терминал и выполните команду, которая покажет версию утилиты:

adb version

Если в ответ приходит «command not found» или аналог — ADB либо не установлен, либо его путь не прописан. В этом случае скачайте официальный пакет SDK Platform-Tools с сайта для разработчиков Android, распакуйте архив и либо работайте из этой папки, либо добавьте её в PATH.

Чтобы запустить ADB без настройки PATH, перейдите в каталог с утилитой и вызывайте её с явным указанием расположения:

cd C:\platform-tools

.\adb devices

В macOS и Linux вместо .\adb используется ./adb. Обратите внимание: префикс ./ обязателен, если текущая папка не входит в PATH — без него оболочка будет искать команду только в системных каталогах.

Шаг 3. Настройте переменную PATH правильно

Постоянно переходить в папку с ADB неудобно, поэтому путь к Platform-Tools обычно добавляют в системную переменную PATH. При этом ошибка «no such file or directory» нередко возникает из-за опечатки в этом пути — например, папку переименовали или переместили после настройки.

Порядок действий для Windows:

  • 🗂️ Откройте «Система» → «Дополнительные параметры системы» → «Переменные среды».
  • ✏️ Найдите переменную Path и добавьте полный путь к папке platform-tools, например C:\platform-tools.
  • 🔄 Закройте и заново откройте терминал — старые окна не подхватывают изменения.
  • ✅ Проверьте результат командой adb version.

В macOS и Linux путь прописывается в файле конфигурации оболочки (~/.zshrc или ~/.bashrc) строкой вида export PATH="$PATH:~/platform-tools", после чего нужно выполнить source ~/.zshrc или перезапустить терминал. Точное имя конфигурационного файла зависит от используемой оболочки — проверьте её командой echo $SHELL.

⚠️ Внимание: если в PATH указана папка, которой больше не существует, система просто пропустит её без предупреждений. Перед поиском других причин убедитесь, что путь в переменной реально ведёт к папке с файлом adb.exe (или adb на macOS/Linux).
📊 Где именно возникла у вас ошибка «no such file or directory»?
При запуске команды adb
При adb push / pull на устройство
Внутри скрипта или терминала Linux/macOS
После обновления или переустановки Platform-Tools

Шаг 4. Проверьте пути к файлам при adb push и adb pull

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

Типичные ловушки с локальным путём:

  • 📄 Файл переименован или лежит в другой папке — сверьте имя посимвольно, включая расширение.
  • 🔤 Путь содержит пробелы или кириллицу — заключите его в кавычки: adb push "C:\Мои файлы\app.apk" /sdcard/.
  • 🧭 Вы рассчитываете на относительный путь, но терминал открыт в другой папке — укажите абсолютный путь или перейдите в каталог с файлом.
  • 💾 Файл на съёмном диске, который сейчас отключён, — буква диска недоступна.

С путём на устройстве ситуация тоньше. Каталог /sdcard/ существует практически на любом Android-устройстве, но пути вроде /data/local/tmp/ или системных разделов могут быть недоступны без соответствующих прав. Проверить существование каталога на устройстве можно командой adb shell ls /sdcard/ — если путь не существует, вы сразу увидите ту же ошибку «no such file or directory».

adb shell ls /sdcard/

adb push "C:\files\update.zip" /sdcard/Download/

☑️ Проверка перед adb push

Выполнено: 0 / 4

Шаг 5. Убедитесь, что устройство подключено корректно

Иногда ошибка с файлом — следствие того, что ADB вообще не видит смартфон, и команда обращается «в никуда». Проверьте базовую связку:

adb devices

Если список пуст или устройство отображается со статусом unauthorized, передача файлов работать не будет. Для статуса unauthorized разблокируйте смартфон и подтвердите на его экране запрос «Разрешить отладку по USB?». Если устройства нет в списке совсем, проверьте, что отладка по USB включена в разделе «Для разработчиков» в настройках телефона, а кабель поддерживает передачу данных — часть зарядных кабелей её не имеет.

На Windows дополнительно может потребоваться драйвер USB от производителя устройства — без него смартфон определяется системой, но ADB его не видит. Драйверы распространяются через официальные сайты производителей, и их состав зависит от конкретной модели, поэтому сверяйтесь с документацией именно вашего аппарата.

⚠️ Внимание: после смены кабеля, порта USB или включения отладки перезапустите ADB-сервер командами adb kill-server и adb start-server — подвисший сервер нередко показывает устаревший список устройств.

Шаг 6. Специфика Linux и macOS: права и повреждённый бинарник

На Linux и macOS сообщение «no such file or directory» может появляться даже тогда, когда файл adb лежит прямо перед вами. Классическая причина — отсутствие права на исполнение. Оно сбрасывается, если архив распаковывался нештатными средствами или файл копировался между файловыми системами.

Исправляется одной командой:

chmod +x ./adb

Вторая возможная причина на Linux — отсутствие 32-битных библиотек совместимости на 64-битной системе: оболочка в этом случае выдаёт именно «no such file or directory», хотя проблема не в самом файле, а в его зависимостях. Современные сборки Platform-Tools обычно 64-битные, но если вы используете старую версию, проще скачать актуальный пакет, чем доустанавливать устаревшие библиотеки.

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

Почему Linux пишет «no such file or directory» для существующего файла

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

Шаг 7. Ошибка внутри скриптов и при работе с adb shell

Когда «no such file or directory» всплывает внутри adb shell-команд или пакетных скриптов, виновником обычно оказывается несуществующий путь в самой системе Android либо отсутствующая утилита на устройстве. Например, команда adb shell /system/bin/some_tool выдаст эту ошибку, если some_tool в прошивке не предусмотрен.

Диагностируйте пошагово: сначала войдите в интерактивную оболочку командой adb shell, затем вручную выполните проблемную команду и проверьте каждый путь через ls. Так вы локализуете, какой именно элемент строки не существует. В скриптах Windows дополнительно проверяйте кодировку файла и окончания строк — скрипт, сохранённый с переносами строк в стиле Unix, иногда выполняется с ошибками, и наоборот.

Сводная таблица: симптом → причина → действие

СимптомВероятная причинаПервое действие
«adb не является командой» / command not foundPlatform-Tools не в PATHЗапустить из папки или добавить путь в PATH
Ошибка при adb pushНеверный локальный путь или пробелы без кавычекПроверить имя файла, взять путь в кавычки
Ошибка при обращении к пути на устройствеКаталог не существует или нет правПроверить через adb shell ls
Ошибка при видимом файле adb (Linux/macOS)Нет права на исполнениеВыполнить chmod +x ./adb
Ошибка после распаковки архиваПовреждённый или неполный файлСкачать и распаковать Platform-Tools заново

Частые вопросы

ADB раньше работал, а теперь пишет «no such file or directory». Что изменилось?

Чаще всего папку platform-tools переместили, переименовали или удалили, а PATH указывает на старое место. Проверьте, существует ли путь из переменной среды, и обновите его. Также возможно, что антивирус удалил или поместил в карантин исполняемый файл — проверьте журнал защитника.

Файл точно лежит в папке, но adb push его не видит. Почему?

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

Чем «no such file or directory» отличается от «device not found»?

Первая ошибка касается файлов и путей — на компьютере или на устройстве. Вторая означает, что ADB не видит подключённый смартфон: проблема в кабеле, драйвере, отладке по USB или состоянии ADB-сервера. Методы решения у них разные.

Нужен ли root для исправления этой ошибки?

Нет. Все описанные причины — пути, PATH, права на исполнение, подключение — решаются без root-доступа. Root может понадобиться только если вы целенаправленно работаете с защищёнными системными разделами устройства, но это отдельная задача со своими рисками.

В PATH всё прописано, но команда не находится в новом окне терминала?

Изменения переменных среды применяются только к вновь открытым окнам. Закройте все окна терминала и откройте заново. Если не помогло — перепроверьте, что путь добавлен именно в ту переменную (пользовательскую или системную), под которой вы работаете, и не содержит опечаток и лишних пробелов.