Глиф Учебники

Ошибка No such file or directory

Справочник · Командная строка Linux · 2 минуты чтения

No such file or directory (в русской системе — «Нет такого файла или каталога») значит, что по указанному пути ничего нет. Почти всегда путь написан не так, как на самом деле. Проверьте по порядку.

Путь и регистр

Пробелы и тильда

Имя с пробелами без кавычек разваливается на части: cd Рабочий стол ищет папку «Рабочий». Правильно:

Bash
cd "Рабочий стол"
cd Рабочий\ стол
cd ~/"Рабочий стол"

Тильда ~ внутри кавычек не превращается в домашнюю папку: cd "~/Рабочий стол" ищет папку с именем ~. Ставьте ~ снаружи кавычек, как в третьей строке, или пишите "$HOME/Рабочий стол".

Скрипт: bad interpreter

Текст
bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory

Скрипт сохранён в Windows, и в конце каждой строки стоит лишний символ возврата каретки (он показан как ^M). Система ищет программу /bin/bash с этим символом в имени и не находит. Исправить:

Bash
sed -i 's/\r$//' script.sh

Или командой dos2unix script.sh из одноимённого пакета. Та же ошибка без ^M значит, что в первой строке скрипта указана программа, которой нет: например, #!/usr/bin/python там, где есть только python3.

Файл есть, а ошибка всё равно