Команда cd в Linux — полное руководство
Команда cd меняет текущую рабочую директорию в терминале. Используйте абсолютные пути (начинаются с /) или относительные (от текущей папки). Специальные токены: ~ для домашней, / для корня, .. для родительской и - для предыдущей директории. Для папок с пробелами оборачивайте путь в кавычки или экранируйте пробелы.

В этой статье подробно объяснено, как работает cd, какие бывают варианты использования, типичные ошибки и готовые шаблоны команд для повседневной работы. В конце — краткие контрольные списки и шпаргалка.
Введение
Навигация по файловой системе — одна из самых базовых задач при работе с Linux. Графические файловые менеджеры делают это визуально, а командная строка даёт больше контроля и скорость для повторяющихся действий. Команда cd (Change Directory) — основной инструмент для перехода между папками в оболочке (bash, zsh и др.).
Определение: cd — команда оболочки для смены текущей рабочей директории в сессии терминала.
Важно: cd обычно реализована как встроенная команда (builtin) оболочки, потому что смена директории должна воздействовать на текущий процесс оболочки.
Основной синтаксис
cd [путь]Здесь [путь] — абсолютный или относительный путь к директории. В большинстве случаев дополнительных опций у cd нет; поведение зависит от оболочки.
Краткий пример:
cd /home/username/Documents
cd ~/Desktop
cd ..
cd -Абсолютные и относительные пути
- Абсолютный путь начинается с / и даёт полный маршрут от корня файловой системы, например /home/username/Desktop.
- Относительный путь задаётся относительно текущей директории. Например, если вы находитесь в /home/username, команда cd Desktop приведёт в /home/username/Desktop.
Ментальная модель: представьте дерево каталогов. Абсолютный путь — это путь от ствола дерева до листа. Относительный — от текущей ветки.
Примеры:
# абсолютный
cd /var/log
# относительный
cd ../other-folderДомашняя директория и тильда
~ (тильда) — сокращение для домашней директории текущего пользователя. Она разворачивается оболочкой.
cd ~
cd ~/Downloads
cd ~otheruserСовет: использовать ~ удобно в скриптах, если путь должен быть привязан к пользовательской директории.
Переход в корневую директорию
Слеш / обозначает корень всей файловой системы. Чтобы перейти в корень:
cd /Переход в предыдущую директорию
Гипен - возвращает вас в директорию, в которой вы были до последней команды cd. Это удобно при переключении между двумя папками.
cd /var/log
cd /etc
cd - # вернёт в /var/log и выведет путьПримечание: многие оболочки отображают путь при выполнении cd -.
Переход в родительскую директорию
.. обозначает родительскую директорию. . обозначает текущую.
cd ..
cd ../../
cd ../folderМожно использовать несколько .. подряд для подъёма на несколько уровней.
Имена папок с пробелами и специальными символами
Если в имени каталога есть пробелы или другие специальные символы, используйте одно из решений:
- Обернуть путь в одиночные или двойные кавычки:
cd 'Important Documents'
cd "My Projects"- Экранировать пробел обратной косой чертой:
cd Important\ DocumentsВажно: кавычки зачастую удобнее и безопаснее, особенно если в имени есть символы вроде & или $.
Дополнительные приёмы и полезные шаблоны
- Быстрый переход в корневую домашнюю папку другого пользователя:
cd ~alice- Комбинирование с командой ls для проверки содержимого:
cd /var && ls -la- Использование автодополнения (Tab) для сокращения ввода и избежания ошибок в именах файлов.
Когда cd не срабатывает и как диагностировать
Частые причины отказа команды cd:
- Неправильный путь или опечатка. Ошибка: bash: cd: путь: Нет такого файла или каталога.
- Попытка перейти в файл вместо каталога. Ошибка: bash: cd: filename: Not a directory.
- Недостаточно прав доступа. Ошибка: bash: cd: каталог: Permission denied.
Диагностика:
- Проверьте существование папки: ls -ld путь
- Посмотрите права: ls -ld путь
- Если нужно, используйте sudo для доступа к защищённым каталогам (только если это безопасно): sudo -i && cd /protected/path
Важно: sudo cd не работает напрямую, потому что sudo запускает новую оболочку как подпроцесс. Вместо этого используйте sudo -i для входа в интерактивную оболочку root.
Альтернативы и расширенные инструменты
- pushd / popd
- pushd добавляет текущую директорию в стек и переходит в указанную. popd возвращает из стека. Удобно при переключении между несколькими папками.
pushd /etc
# работаем в /etc
pushd /var/log
# возвращаемся в /etc
popd- cdargs, autoenv, z
- cdargs и z позволяют быстро прыгать по часто используемым путям.
- autoenv автоматически выполняет скрипты при заходе в директорию (используется осторожно из соображений безопасности).
- Файловые менеджеры и интегрированные терминалы
- Иногда удобнее открыть файловый менеджер (Nautilus, Dolphin) и вызвать терминал на месте (обычно пункт «Открыть терминал»).
Типичные ошибки и как их избегать
- Ввод пути, начинающегося с /, когда нужен относительный путь. Помните: / в начале делает путь абсолютным.
- Попытка использовать sudo cd. Решение: sudo -i или su -
- Неправильное экранирование пробелов. Используйте автодополнение или кавычки.
Шпаргалка команд
cd / # перейти в корень
cd ~ # перейти в домашнюю директорию
cd # без аргументов тоже переходит в домашнюю
cd - # перейти в предыдущую директорию
cd .. # подняться на уровень вверх
cd ../../ # подняться на два уровня
cd ~/projects # перейти в projects в домашней
cd 'My Folder' # папка с пробеломФакты в одном месте:
- Специальные токены: ~, /, ., .., -
- cd обычно встроена в оболочку
- pushd/popd управляют стеком директорий
Роли и чек-листы
Для новичка:
- Научитесь переходить в домашнюю и родительскую директорию.
- Попрактикуйтесь с относительными путями.
- Используйте автодополнение Tab.
Для разработчика:
- Освойте pushd/popd для переключения между проектами.
- Настройте алиасы для часто используемых путей: alias proj=”cd ~/projects/myproject”
Для системного администратора:
- Используйте sudo -i для переключения в root при необходимости.
- Проверяйте права доступа перед переходом в системные каталоги.
Критерии приёмки
- Команда cd должна менять рабочую директорию оболочки. Проверка: выполнить cd путь && pwd и сверить путь.
- Для папки с пробелом переход через кавычки должен работать: cd “My Folder” && pwd завершится без ошибок.
- cd - должно возвращать в предыдущую директорию и выводить её путь.
Примеры сценариев и тесты
- Переключение на домашнюю директорию
cd ~
pwd # ожидается /home/youruser- Переход в родительскую директорию
cd /usr/bin
cd ..
pwd # ожидается /usr- Переход в директорию с пробелом
mkdir -p "Test Folder"
cd "Test Folder"
pwd # ожидается путь к Test Folder- Использование pushd/popd
pushd /tmp
pushd /var
popd # вернёт в /tmpКогда не стоит использовать cd
- В скриптах, которые должны работать в контексте вызывающей оболочки, использование cd меняет окружение. В таких сценариях лучше запускать команды с полными путями или экспортировать нужные переменные.
- Не применяйте автоматический запуск неизвестных скриптов при заходе в директорию (autoenv) без проверки их содержимого.
Безопасность и приватность
- Никогда не выполняйте автоматически команды, найденные в чужих директориях.
- Будьте осторожны с автозагрузкой скриптов при входе в директорию (autoenv) — это может быть вектором атаки.
Краткое резюме
Команда cd — простой и надёжный инструмент для навигации по системе. Освойте абсолютные и относительные пути, специальные токены (~, /, .., -), а также методы работы с пробелами и правами доступа. Для частой навигации используйте pushd/popd или утилиты вроде z, а в скриптах предпочитайте явные пути.
Важно
Практикуйтесь в безопасном окружении и применяйте автодополнение, чтобы снизить количество опечаток.
1‑строчный глоссарий:
- cd — смена директории; ~ — домашняя; / — корень; .. — родитель; - — предыдущая директория.
Конец статьи.
Похожие материалы
Как добавлять и управлять виджетами на Android
Удалить куки для конкретного сайта — Chrome, Firefox, Edge
Как подключить контроллер PS3 к Android
Конвертация FLAC в MP3 бесплатно