Команда выполняется из рабочей папки
Команда pwd показывает текущий рабочий каталог. От него обычно отсчитывается относительный путь, например notes/report.txt. Абсолютный путь начинается с корневой косой черты и задаёт положение от корня файловой системы: например, /home/student/project/notes/report.txt. Если перейти в другую папку, относительная запись может указывать уже на другое место. Поэтому перед разбором ошибки полезно проверить рабочий каталог, а не предполагать, что терминал открыт там же, где окно файлового менеджера.
Переход меняет основу относительного пути
Предположим, текущая папка проекта содержит notes. Команда cd notes переводит оболочку в эту подпапку. После этого путь notes/report.txt означал бы ещё одну папку notes внутри текущей, если она существует. Для файла непосредственно в новой рабочей папке достаточно report.txt. Запись .. обозначает родительский каталог, поэтому cd .. возвращает на уровень выше. После каждого перехода можно снова вызвать pwd и сопоставить фактическое положение с нарисованным деревом. Это помогает не запоминать команды без понимания адресации.
Пробел может разделить одно имя на два аргумента
В имени report draft.txt пробел является частью имени файла. Но в незаключённой в кавычки командной строке Bash использует пробелы для разделения слов. Запись ls -- notes/report draft.txt передаст ls два пути: notes/report и draft.txt. Для одного имени подходит ls -- 'notes/report draft.txt'. Одинарные кавычки сохраняют этот текст как единое слово и сами не становятся частью имени. Двойной дефис здесь завершает разбор параметров ls, после него идут операнды, то есть указанные пути.
Сообщение об ошибке даёт подсказку
Если в ответе перечислены два несуществующих имени вместо одного ожидаемого, стоит проверить разделение аргументов. Если имя целиком верное, проверьте рабочий каталог и написание пути. Не нужно сразу менять права доступа или предполагать повреждение системы. Разные причины требуют разных действий: отсутствие пути и запрет доступа не являются одним состоянием. Команды pwd и ls позволяют собрать исходные сведения, не меняя содержимое файла. Их результат полезно читать внимательно, а не только искать в нём слово ошибка.
Попробуйте на практике
Разберите пути и аргументы для учебного дерева project, внутри которого есть notes и файл report draft.txt.
- Нарисуйте дерево папок и отметьте рабочий каталог project. Запишите относительный путь notes/report draft.txt и условный абсолютный путь к тому же файлу.
- Предскажите результат cd notes, затем укажите, какой относительный путь нужен к файлу из нового положения.
- Разберите запись ls -- notes/report draft.txt на аргументы. Объясните, почему она не обозначает один файл с пробелом.
- Запишите исправленный вариант ls -- 'notes/report draft.txt' для запуска из project. Отдельно поясните роль кавычек и двойного дефиса.
- Вернитесь на схеме к родительской папке с помощью cd .. и проверьте ожидаемый результат pwd. При наличии собственного учебного каталога сопоставьте схему с выводом команд.
Как проверить результат. Вы можете определить рабочую папку на каждом шаге, построить путь к одному файлу из разных положений и объяснить различие между одним аргументом с пробелом и двумя отдельными именами.
Частые вопросы
Кавычки нужно добавлять в само имя файла?
Нет. В приведённой команде они относятся к синтаксису Bash и помогают передать аргумент. Имя файла остаётся report draft.txt.
Абсолютный путь всегда лучше относительного?
Они решают разные задачи. Абсолютный явно задаёт место, а относительный удобен внутри известной структуры. В обоих случаях важно понимать исходное положение и правильно передавать имя.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.