Нет такого файла или каталога linux как исправить

Обновлено: 21.11.2024

Терминал Linux позволяет запускать программы. В этой статье объясняется, как правильно запускать файлы и устранять ошибку bash: Нет такого файла или каталога в Linux Bash.

Существует множество причин, связанных с кодом, по которым вы получаете ошибку bash: Нет такой ошибки файла или каталога в Bash. Мы объясним наиболее распространенные ошибки и способы их исправления.

Проверьте путь и интерпретатор, чтобы устранить ошибку bash: нет такого файла или каталога Ошибка в Linux Bash

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

Если вы запускаете файл с относительным путем ( ../../file ), попробуйте выполнить его с абсолютным путем ( /path/to/file ).

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

Убедитесь, что программа использует правильный интерпретатор.

Установите пакеты библиотек для устранения ошибки bash: нет такого файла или каталога Ошибка в Linux Bash

Отсутствие библиотек в вашей системе может привести к ошибке bash: Нет такого файла или каталога. Изучите файл с помощью команды file.

Если файл представляет собой 32-разрядный исполняемый файл, вам потребуются некоторые библиотеки для его выполнения в ОС с 64-разрядной архитектурой. Чтобы устранить эту ошибку в Ubuntu, добавьте архитектуру i386 с помощью команды dpkg, затем установите необходимые библиотеки.

Используйте команду dos2unix для устранения ошибки bash: Нет такого файла или каталога Ошибка в Linux Bash

Операционные системы Unix используют перевод строки ("\n" ) в конце строки, а операционные системы Windows используют возврат каретки и перевод строки ("\r\n" ). Поэтому, если вы попытаетесь выполнить код, написанный в Windows, в Linux, вы можете получить эту ошибку.

Для запуска файла необходимо очистить символы возврата каретки.

Инструмент командной строки dos2unix представляет собой конвертер форматов текстовых файлов DOS в Unix и наоборот. Вы можете использовать инструмент dos2unix, чтобы сделать ваш файл совместимым с Unix.

Его использование выглядит следующим образом.

Файл будет преобразован в формат Unix. Теперь вы можете выполнить файл.

Несмотря на то, что здесь мы объяснили наиболее распространенные ошибки и решения, эта ошибка может иметь множество причин, связанных с кодом. Вы можете решить эту проблему, выбрав решение, подходящее для вашего приложения.

Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».

Статья по теме: ошибка Bash

сообщить об этом объявлении

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

Как вернуться к каталогу в Ubuntu?

Команды файлов и каталогов

  1. Чтобы перейти в корневой каталог, используйте «cd /»
  2. Чтобы перейти в домашний каталог, используйте «cd» или «cd ~»
  3. Чтобы перейти на один уровень каталога вверх, используйте «cd ..»
  4. Чтобы перейти к предыдущему каталогу (или обратно), используйте «cd -»

Что означает отсутствие такого файла или каталога?

Загрузка, когда этот ответ был принят... Это сокращение от Error NO ENTry (или Error NO ENTity), и на самом деле его можно использовать не только для файлов/каталогов. Он сокращен, потому что компиляторы C на заре времен не поддерживали более 8 символов в символах.

Как запустить исполняемый файл в Linux?

Это можно сделать, выполнив следующие действия:

Как исправить отсутствие такого файла или каталога в блоках кода?

Чтобы избавиться от ошибки, вам нужно изменить путь обратно на тот, который присутствует в папке программы Codeblocks. В моем случае это был C:Program Files (x86)CodeBlocksMinGW. Вы можете изменить путь в Codeblocks, выполнив следующие действия. Строка меню-> Настройки-> Компилятор-> Исполняемые файлы Toolchain.

Почему Python говорит об отсутствии такого файла или каталога?

Скорее всего, проблема в том, что вы используете относительный путь к файлу для открытия файла, но текущий рабочий каталог не соответствует тому, что вы думаете. … Относительные пути к файлам всегда относятся к текущему рабочему каталогу, и текущий рабочий каталог не обязательно должен быть местоположением вашего скрипта Python.

Как изменить каталог в терминале?

Чтобы изменить текущий рабочий каталог, вы можете использовать команду «cd» (где «cd» означает «изменить каталог»). Например, чтобы переместиться на один каталог вверх (в родительскую папку текущей папки), вы можете просто вызвать: $ cd ..

Как запустить файл в терминале Linux?

Этапы написания и выполнения скрипта

  1. Откройте терминал.Перейдите в каталог, в котором вы хотите создать скрипт.
  2. Создайте файл с расширением . расширение ш.
  3. Запишите сценарий в файл с помощью редактора.
  4. Сделайте скрипт исполняемым с помощью команды chmod +x .
  5. Запустите скрипт, используя ./ .

Как изменить каталог?

Если папка, которую вы хотите открыть в командной строке, находится на вашем рабочем столе или уже открыта в проводнике, вы можете быстро перейти в этот каталог. Введите cd и пробел, перетащите папку в окно и нажмите Enter. Каталог, в который вы перешли, будет отражен в командной строке.

Как мне вернуться в свой домашний каталог?

Чтобы перейти в свой домашний каталог, используйте «cd» или «cd ~». Чтобы перейти на один уровень каталога, используйте «cd ..». Чтобы перейти к предыдущему каталогу (или назад), используйте «cd -». в корневой каталог используйте «cd /»

Как получить права root в Linux?

Для входа в систему в качестве суперпользователя/пользователя root в Linux необходимо использовать любую из следующих команд:

  1. команда su — запуск команды с заменой идентификатора пользователя и группы в Linux.
  2. команда sudo — выполнение команды от имени другого пользователя в Linux.

Как исправить отсутствие такого файла или каталога в Arduino?

После того как вы скачали файл . zip, вы можете перейти в Arduino IDE и выбрать Sketch > Include Library > Add . ZIP-библиотека… Вам просто нужно перейти туда, куда был загружен файл.

Что означает каталог?

Каталог – это другое название папки. … Например, системные файлы могут находиться в одном каталоге, а пользовательские — в другом. Хотя каталоги часто содержат файлы, они также могут содержать другие каталоги или подкаталоги.

Как исправить ошибку Enoent?

Если кто-то сразу столкнулся с этой проблемой, используйте npm install –global –production windows-build-tools –vs2019 или –vs2017 . и скопируйте вставить исполняемый файл. Здесь измените что-нибудь с именем вашей папки и надеюсь, что это исправит вашу ошибку. в этом порядке в терминале решил проблему для меня.

Я понятия не имею, почему ОС даже не видит файл, когда он есть. Есть мысли?

17 ответов 17

Эта ошибка может означать, что ./arm-mingw32ce-g++ не существует (но существует) или что он существует и является динамически подключаемым исполняемым файлом, распознаваемым ядром, но динамический загрузчик которого недоступен. Вы можете увидеть, какой динамический загрузчик требуется, запустив ldd /arm-mingw32ce-g++ ; все, что помечено как не найденное, является динамическим загрузчиком или библиотекой, которую необходимо установить.

Если вы пытаетесь запустить 32-разрядный двоичный файл на установке amd64:

  • До Ubuntu 11.04 установите пакет ia32-libs .
  • В Ubuntu 11.10 установите ia32-libs-multiarch .
  • Начиная с версии 12.04 установите ia32-libs-multiarch или выберите разумный набор пакетов i386 в дополнение к пакетам :amd64.

Отлично, работает! Кстати, вывод ldd не был динамическим исполняемым файлом (до того, как я установил ia32-libs).

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

Я открыл файл в Vim и увидел, что только потому, что я когда-то редактировал этот файл на компьютере с Windows, он был в формате DOS. Я преобразовал файл в формат Unix с помощью следующей команды:

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

С опозданием на десять лет, но нужно отдать должное. В моем случае используется WSL2 в Windows с каталогами Windows, смонтированными внутри дистрибутива, работающего на WSL. Окончания строк Windows — файлы unix.

Спасибо, @BrentonThomas. Я рад, что это помогло. Я еще не пробовал WSL в Windows. Я хочу использовать его в ближайшее время.

Верно, но я остановился на этом вопросе именно для этой проблемы, так что, как вы сказали, может быть, кто-то другой тоже.

У меня было такое же сообщение об ошибке при попытке запустить скрипт Python — это не было предполагаемым вариантом использования @Warpspace (см. другие комментарии), но это было одним из лучших результатов моего поиска, так что, возможно, кто-то найдет это полезным. .

Я получил эту ошибку «Нет такого файла или каталога», но она существует, потому что мой файл был создан в Windows, и я попытался запустить его в Ubuntu, и файл содержал недопустимые 15\r везде, где когда-либо была новая строка. Я только что создал новый файл, обрезав ненужные вещи

Я нашел решение для своей Ubuntu 18 здесь.

Я получил ту же ошибку для простого сценария bash, у которого не было бы проблем с 32/64-разрядными версиями. Возможно, это связано с тем, что сценарий, который вы пытаетесь запустить, содержит ошибку. В этом сообщении на форуме Ubuntu указано, что с обычными файлами сценариев вы можете добавить sh впереди, и вы можете получить от него некоторый отладочный вывод. например

и посмотрите, получите ли вы какие-либо результаты.

В моем случае фактическая проблема заключалась в том, что файл, который я пытался выполнить, был в формате Windows, а не Linux.

Команда ниже работала в Ubuntu 16.4

Эта проблема возникает, если ваш файл .sh поврежден или не отформатирован в соответствии с протоколами Unix.

dos2unix преобразует файл .sh в формат Unix!

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

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

По сути, вам нужно выяснить, какой загрузчик он пытается использовать:

Затем найдите правильный путь для эквивалентного загрузчика и измените свой исполняемый файл, чтобы использовать загрузчик из пути, которым он является на самом деле:

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

У меня была такая же проблема с файлом, который я создал на своем Mac. Если я попытаюсь запустить его в оболочке с ./filename, я получу сообщение об ошибке, в котором файл не найден. Я думаю, что с файлом что-то не так.

открыть сеанс ssh с сервером
имя файла cat
скопировать вывод в буфер обмена
имя файла rm
touch имя файла
имя файла vi
i for режим вставки
вставить содержимое из буфера обмена
ESC для выхода из режима вставки
:wq!

Это сработало для меня.

У меня только что была эта проблема в mingw32 bash. Я выполнил node/npm из Program Files (x86)\nodejs, а затем переместил их в отключенный каталог (по сути, удалив их из пути). У меня также были Program Files\nodejs (т.е. 64-битная версия) в пути, но только после версии x86. После перезапуска оболочки bash можно было найти 64-битную версию npm. node работал правильно все время (проверено с помощью node -v, который изменился при переносе версии x86).

У меня была эта проблема, и причина была в EOL в некоторых редакторах, таких как Notepad++. Вы можете проверить это в меню Edit/EOL convert. Unix(LF) должен быть выбран. Надеюсь, это будет полезно.

Добавлено сюда для справки в будущем (для пользователей, которые могут попасть в тот же случай): эта ошибка возникает при работе в Windows (которая вводит дополнительные символы из-за другого разделителя строк, чем в системе Linux) и попытке запустить этот скрипт (с дополнительными вставленные символы) в Linux. Сообщение об ошибке вводит в заблуждение.

В Windows разделителем строк является CRLF (\r\n), а в Linux — LF (\n). Обычно это можно выбрать в текстовом редакторе.

В моем случае это произошло из-за работы в Windows и загрузки на сервер Unix для выполнения.

Я использую docker, linux, но собираю его из Windows. Мой скрипт запустился scriptdir=$(cd "$(dirname "$" )" && pwd), затем cd $scriptdir || exit 1, но \r в моем файле, отредактированном Windows, был добавлен к значению scriptdir. Таким образом, сообщение : нет такого файла или каталога было очень запутанным, поскольку оно закончилось тем, что стерло то, на что жаловалось.

Для тех, кто сталкивается с этой ошибкой при запуске программы Java, возможно, вы пытаетесь запустить 64-разрядную программу Java в 32-разрядной операционной системе Linux.

Я понял это только тогда, когда запустил ldd на 64-битной версии Java, которая сообщила:

'не динамический исполняемый файл'

Принимая во внимание, что старая 32-разрядная версия Java давала разумные результаты:

Столкнитесь с этой ошибкой при попытке запустить terraform/terragrunt (Single go binary).

Использование террагрунта для поиска исполняемого файла привело к странной ошибке при запуске в локальном каталоге или с полным путем

Проблема заключалась в том, что было две установки terragrunt, использовал brew uninstall terragrunt, чтобы удалить одну, исправила это.

После удаления того, который terragrunt показывал новый путь /usr/bin/terragrunt, все заработало нормально.

SCP расшифровывается как Secure Copy Protocol и основан на протоколе «Secure Shell». Он предоставляет метод для передачи файлов между компьютерами. В этом переносе либо оба компьютера могут быть удаленными хостами, либо один компьютер может быть локальным хостом, а другой — удаленным хостом. Совсем недавно многие пользователи получали ошибку «Нет такого файла или каталога» при попытке скопировать файлы с помощью SCP.

Нет такого файла или ошибки каталога

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

Что вызывает ошибку «Нет такого файла или каталога» в SCP?

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

  • Неверная команда. В некоторых случаях команда, используемая пользователем для копирования файла, может быть неверной. Вы должны изменить команду копирования, чтобы она соответствовала текущей ситуации, в которой вы копируете. Команды для копирования файлов и всего каталога отличаются. Кроме того, команда копирования между двумя компьютерами с разными конфигурациями изменена в соответствии с требованиями.
  • Номер порта. Также возможно, что номер порта для копирования файлов между компьютерами не указан. Перед попыткой копирования файлов между двумя хостами необходимо перенаправить правильный порт.
  • Неправильный вход в систему. Если вы в настоящее время вошли на сервер и пытаетесь скопировать файлы на рабочий стол, вы можете столкнуться с этой ошибкой, поскольку сервер пытается найти локальный путь на сервере. Этого можно избежать, выйдя из пути сервера.
  • Разрешения на доступ к файлам. В некоторых случаях права доступа к копируемым файлам могут быть ограничены «Только для чтения». Это может предотвратить доступ сервера к файлам и возможность их копирования. Важно, чтобы для файлов были предоставлены разрешения на чтение и запись.

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

Решение 1. Использование правильных команд

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

Копировать с локального хоста на удаленный хост

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

Пример копирования текстового файла с именем «Alexa.txt» будет следующим.

Точно так же вы можете скопировать весь каталог следующим образом

Пример копирования каталога с именем «Alexa» может быть следующим.

Копировать с удаленного хоста на локальный

Если вы хотите скопировать файл с удаленного хоста на локальный хост, конфигурация команд отличается от исходной. Ниже указаны соответствующие команды для копирования файлов между удаленным хостом и локальным хостом.

Чтобы скопировать файл, используйте следующую команду

Чтобы скопировать файл с именем «Alexa.txt», используйте следующие команды

Решение 2. Определение номера порта

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

Вы можете использовать следующую команду для копирования между компьютерами, указывая номер порта.

Эту же команду можно использовать для указания номера порта при копировании на удаленный хост или с него. Вам просто нужно добавить «-P (номер порта)» после части команды «$ scp».

Решение 3. Изменение разрешений

При копировании между компьютерами файлу должны быть предоставлены соответствующие разрешения. Поэтому на этом этапе мы укажем процесс изменения прав доступа к файлу. Для этого:

Примечание. Кроме того, убедитесь, что вы не вошли в систему по пути сервера во время копирования файлов.

Читайте также: