Вики / Базовые команды
cd — смена каталога
Перемещение по файловой системе: cd, cd -, cd ~, cd .., pushd/popd, CDPATH.
cd (change directory) — встроенная команда оболочки: меняет текущий рабочий
каталог. Это не отдельная программа, а builtin самого bash (поэтому у неё нет
man cd — смотри help cd).
Где ты сейчас — показывает pwd или cd без аргументов вернёт домой.
Пути: . — текущий каталог, .. — родительский, ~ — домашний (/home/ты),
/ — корень, - — предыдущий каталог.
cd /etc # перейти по абсолютному пути
cd logs # по относительному (от текущего каталога)
cd .. # на уровень вверх
cd ../.. # на два уровня вверх
cd # в домашний каталог (то же, что cd ~)
cd ~ # домашний каталог
cd ~user # домашний каталог другого пользователя
cd - # вернуться в ПРЕДЫДУЩИЙ каталог (туда-сюда)
cd /var/log && ls # перейти и сразу выполнить команду
cd - — самый частый трюк: прыгать между двумя каталогами (печатает, куда перешёл).
pushd /var/log # перейти и ЗАПОМНИТЬ прежний каталог в стек
pushd /etc/nginx # ещё один — стек растёт
popd # вернуться к предыдущему из стека
dirs -v # показать стек каталогов с номерами
# CDPATH — «быстрые базы» для cd (как PATH, но для каталогов):
export CDPATH=".:/var:$HOME/projects"
cd nginx # найдёт /var/log/nginx, даже если ты не там
В bash можно включить shopt -s autocd — тогда ввод одного пути без cd
сам перейдёт в каталог. И cd понимает Tab-автодополнение имён.
cd: too many arguments
cd принимает один путь. Если в имени каталога пробел — заключи в кавычки:
cd "My Folder" или экранируй: cd My\ Folder.
cd: not a directory
Целевой путь — файл, а не каталог. Проверь ls -ld путь.
cd: permission denied
Нет прав x (вход) на каталог. Нужен бит выполнения — см. chmod-chown.
«Перешёл в скрипте, а после него снова старый каталог»
Каждый процесс/скрипт имеет свой рабочий каталог. cd внутри bash-скрипта
не меняет каталог родительской оболочки — это нормально.
cd dir ; cd .. ; cd ~ # туда · вверх · домой
cd - # назад в предыдущий
pushd dir ; popd ; dirs -v # стек каталогов
"путь с пробелом" # всегда в кавычках
См. также
- Базовые команды с файлами — Базовые команды
- mc — Midnight Commander — Базовые команды
- Переменные окружения и PATH — Базовые команды