Некоторые проблемы в командной оболочке могут возникнуть при работе со сложными именами файлов и каталогов. Это обусловлено тем, что командный интерпретатор, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы, распознает пробел как разделитель перед последующим аргументом или опцией. Существует несколько способов решения этой проблемы.
1. Заключите сложное имя в двойные кавычки. Например, командная строка перехода в подкаталог Рабочий стол домашнего каталога текущего пользователя при этом будет выглядеть так:
cd "Рабочий стол"
2. После каждого слова, перед пробелом, поставьте обратную косую черту. Команда из предыдущего пункта будет выглядеть следующим образом:
cd Рабочий\ стол
Использование двойных кавычек необходимо также и при работе с именами файлов и каталогов, содержащими небуквенные символы, такие как $, @, &, и т. д., которые могут быть интерпретированы как часть аргумента или опции.
Относительные и абсолютные пути
В предыдущем примере был рассмотрен переход к подкаталогу, путь к которому: /home/author/Рабочий стол. Таким образом, переход к этому подкаталогу должен был быть выполнен командой:
cd /home/author/Рабочий \ стол
Эта команда указывает абсолютный путь к подкаталогу, начиная от корня файловой системы. Однако при входе в терминал пользователь сразу оказывается в своем домашнем каталоге. Поэтому может быть использован относительный путь, а команда приобретет вид:
cd Рабочий \ стол
При использовании относительного пути пользователь в командах может указывать путь к файлу или каталогу относительно его текущего расположения. Это очень удобно при разветвленной файловой системе.
Для перехода к родительскому каталогу может быть использована команда:
cd . .
Например, для перехода из каталога /home/author/Рабочий стол в каталог /usr/bin Вы должны ввести команду:
cd ./././usr/bin
Этой командой Вы сначала переходите к родительским каталогам для текущего подкаталога вплоть до корня файловой системы, а затем перемещаетесь в целевой подкаталог.
Использование относительных путей позволяет изменять текущее местоположение пользователя в файловой системе, однако не всегда может оказаться более простым, чем ввод абсолютного пути.