В нескольких случаях вы можете получить сообщение «Нет такого файла или каталога»:
Файл не существует. Это не тот случай, здесь.
Файл с таким именем существует, но это свисающая символическая ссылка. Если
chmod +x ./filename
бы это было так, вы бы напечатали ошибку.Файл представляет собой динамически связанный файл ELF, и интерпретатор программы, необходимый для его запуска, не существует.
Используйте,
readelf -l filename | grep interpreter
чтобы выяснить, какой программный интерпретатор требуется, и убедиться, что он существует и имеет правильные разрешения.Файл существует, и вы можете даже прочитать его, но когда вы пытаетесь выполнить его, вам говорят, что он не существует.
Команда file -L filename
скажет вам, что это за двоичный файл.
Я не могу найти ни одного примера 32-битного исполняемого файла Linux, чтобы попробовать это, но, возможно, вы можете просто запустить file
команду и проверить, является ли файл 32-битным или 64-битным. У вас может быть 32-разрядный двоичный файл в 64-разрядной системе, в которой не установлена 32-разрядная поддержка (это особый случай «отсутствует интерпретатор программы»).