Гид по технологиям

Команда cd в Linux: как быстро перемещаться по каталогам в терминале

7 min read Linux Обновлено 03 Dec 2025
Команда cd в Linux — быстрое руководство
Команда cd в Linux — быстрое руководство

Переход между каталогами в Linux

Навигация по файловой системе Linux в терминале отличается от работы с графическим проводником: нет иконок и кликов мышью. Вы управляете текущим каталогом с помощью встроенной команды cd. В этом руководстве мы разберём все практические приёмы: базовые аргументы, кавычки, автодополнение, алиасы, продвинутые утилиты и распространённые ошибки.

Что такое команда cd

cd — сокращение от «change directory» (сменить каталог). Это встроенная команда оболочки (shell builtin), которая меняет текущий рабочий каталог процесса оболочки. Коротко:

  • cd без аргументов → возвращает в домашний каталог ($HOME).
  • cd /путь/к/каталогу → абсолютный переход от корня.
  • cd относительный_путь → переход относительно текущего каталога.
  • cd .. → перейти на уровень выше (родительский каталог).
  • cd - → вернуться в предыдущий каталог (эквивалент $OLDPWD).

Синтаксис в базовом виде:

cd [опции] [путь]

Замечание: опции поддерживаются не во всех оболочках одинаково. В bash и zsh часто доступны -L и -P (логическое/физическое следование ссылкам). Если вам важна точность, проверяйте поведение в вашей оболочке через help cd или man bash.

Как проверить текущий каталог

Перед сменой каталога полезно убедиться, где вы сейчас. Для этого используйте команду pwd (print working directory):

pwd

Она выводит полный путь до текущего каталога, например /home/username.

Переход в конкретный каталог (абсолютный путь)

Чтобы перейти по абсолютному пути, укажите путь от корня:

cd /usr/local/bin

Это приведёт вас в каталог /usr/local/bin независимо от того, где вы были.

Переход по относительному пути

Если вы уже находитесь в каталоге и нужно спуститься глубже, используйте относительный путь:

cd Documents/project

Этот пример переместит вас в каталог project внутри текущего каталога Documents.

Быстрый переход в домашний каталог

Команда cd без аргументов отправит вас в домашний каталог пользователя:

cd

Аналогично можно использовать тильду ~, которая разворачивается в путь домашней директории:

cd ~
cd ~/Documents

Для перехода в домашний каталог другого пользователя используйте ~user:

cd ~linuxuser

Подняться на уровень выше

Чтобы перейти в родительский каталог, используйте две точки:

cd ..

Несколько уровней вверх:

cd ../../..  # подняться на три уровня

Вернуться в предыдущий рабочий каталог

Команда

cd -

переключит вас в каталог, где вы были до текущего перехода. Это удобно при частых перемещениях между двумя местами. Переменная $OLDPWD хранит путь предыдущего каталога.

Работа с пробелами и специальными символами в именах

Если имя каталога содержит пробелы или специальные символы, используйте кавычки или экранирование обратным слэшем:

cd "Hello World"
cd Hello\ World

Важно: одиночные и двойные кавычки отличаются в обработке подстановок; для названий папок чаще всего подходят двойные.

Скрытые каталоги

В Linux скрытые файлы и каталоги начинаются с точки (.). Чтобы увидеть их в списке, используйте ls -a:

ls -a

Переход примером:

cd .cache

Список скрытых файлов в каталоге

Автодополнение имён каталогов

Современные оболочки (bash, zsh) поддерживают автодополнение через клавишу Tab. Начните ввод имени и нажмите Tab — оболочка либо дополнит до уникального совпадения, либо покажет список вариантов.

Совмещение cd с другими командами

cd можно комбинировать с логическим И && или с ; для последовательного выполнения команд:

cd Desktop && ls -la
cd /var/log; tail -n 50 syslog

Это полезно для перехода и немедленного выполнения списка или другой команды в новом каталоге.

Переменные и расширения пути

  • $HOME — домашняя директория пользователя.
  • $OLDPWD — предыдущая директория.
  • Тильда (~) разворачивается в $HOME.

Пример использования в скриптах:

cd "$HOME/Projects/myapp"

CDPATH — поиск каталогов при cd

Переменная CDPATH позволяет оболочке искать каталоги не только в текущем каталоге, но и в указанных путях. Например:

export CDPATH=.:~:~/Projects
cd myproject

Если myproject присутствует в ~/Projects, команда cd найдёт его, даже если вы находитесь в другом месте. Включите ‘.’ (текущий каталог) первым, чтобы сохранить ожидаемое поведение.

Важно: будьте осторожны с CDPATH в скриптах — оно изменяет поведение cd глобально.

pushd, popd и dirs — стек каталогов

Для быстрого переключения между несколькими рабочими каталогами удобно использовать стек каталогов:

  • pushd path — помещает текущий каталог в стек и переключается на path.
  • popd — возвращает каталог из стека.
  • dirs — показывает содержимое стека.

Пример:

pushd /etc
pushd /var/log
dirs
popd  # вернёт в /etc

Эта техника полезна, когда нужно быстро прыгать между несколькими местами в пределах сессии.

Алиасы и постоянные ярлыки

Алиас позволяет сократить длинные команды. Добавьте алиасы в файл конфигурации оболочки (~/.bashrc, ~/.zshrc) для постоянного эффекта.

Примеры:

alias deskMte="cd ~/Desktop/mte"
alias projects="cd ~/Projects"

После редактирования файла выполните source ~/.bashrc или перезапустите оболочку.

Альтернатива cd: zoxide и другие ускорители

cd хорош для базовой навигации, но при глубокой и частой работе с каталогами удобнее использовать утилиты, которые запоминают ваши переходы и ранжируют каталоги по частоте использования.

  • zoxide — современная замена, делает переходы быстрыми по неполным именам. Устанавливается через пакетный менеджер или cargo. После установки достаточно ввести z имя.
  • autojump, fasd — другие похожие инструменты.

Эти инструменты учатcя по истории команд и экономят много времени при навигации по глубоко вложенным структурам.

Типичные ошибки и способы их устранения

  • Ошибка «No such file or directory»: проверьте текущую директорию, опечатки, регистр букв и используйте ls для проверки.
  • Пробелы в имени: используйте кавычки или обратный слэш.
  • Скрытый каталог не виден: используйте ls -a.
  • cd ведёт себя странно в скрипте: убедитесь, что вы используете встроенную команду оболочки, а не внешнюю; в скриптах окружение отличается от интерактивного.

Безопасность и приватность при навигации по каталогам

Навигация сама по себе не открывает доступ к файлам; права доступа определяют, что вы можете читать или записывать. Для защиты данных используйте шифрование на уровне файловой системы (LUKS, ecryptfs) или контейнеры. Не храните секреты в общих каталогах и не меняйте права доступа без понимания последствий.

Важно: не пытайтесь реализовать «пароль на папку» простой сменой прав — это редко даёт полноценную защиту. Лучше использовать надёжное шифрование.

Советы и хорошие практики

  • Используйте автодополнение и CDPATH осознанно.
  • Привязывайте часто используемые каталоги к алиасам или переменным окружения.
  • Для проектов применяйте структуру с понятными именами (src, docs, tests), чтобы cd быстро находил нужные папки.
  • В скриптах используйте полные пути или управляйте рабочей директорией явно (pushd/popd), чтобы избежать побочных эффектов.

Быстрый справочник команд (cheat sheet)

cd                 # в домашний каталог
cd ~               # тоже в домашний каталог
cd /               # в корневой каталог
cd /absolute/path  # абсолютный путь
cd relative/path   # относительный путь
cd ..              # родительский каталог
cd -               # предыдущий каталог ($OLDPWD)
pwd                # показать текущий каталог
ls -a              # показать скрытые файлы
pushd path         # добавить текущий каталог в стек и перейти
popd               # перейти в каталог из стека
dirs               # показать стек каталогов
alias name="cmd" # создать алиас
export CDPATH=...  # добавить пути для поиска cd

Роль‑ориентированные чек‑листы

Разработчик:

  • Настройте alias на часто используемые проекты.
  • Используйте zoxide или autojump для быстрого доступа к репозиториям.
  • В скриптах указывайте абсолютные пути.

Системный администратор:

  • Используйте pushd/popd при выполнении серий команд на удалённых серверах.
  • Проверяйте права доступа перед изменением директорий.
  • Не храните секреты в общих каталогах.

Начинающий пользователь:

  • Учитесь использовать Tab для автодополнения.
  • Запоминайте команды pwd и ls -a.
  • Практикуйтесь с относительными и абсолютными путями.

Критерии приёмки (как проверить, что всё настроено корректно)

  • Переходы работают ожидаемо: cd ~/путь, cd .., cd - возвращают верные директории.
  • Алиасы сохраняются после перезапуска оболочки (проверьте ~/.bashrc или ~/.zshrc).
  • CDPATH не ломает скрипты: тесты выполняются с тем же поведением, что и без CDPATH.
  • Установленный zoxide/autojump корректно возвращает часто используемые каталоги.

Тестовые случаи для проверки поведения cd

  1. Вызвать cd без аргумента → ожидание: переход в $HOME.
  2. cd ../.. из глубоко вложенного каталога → ожидание: подняться на два уровня.
  3. cd - между двумя каталогами → ожидание: переключение туда и обратно.
  4. cd “Name With Spaces” и cd Name\ With\ Spaces → ожидание: попасть в каталог с пробелами.
  5. Включённый CDPATH и попытка cd в каталог, который есть в одном из путей CDPATH → ожидание: переход найденный путь.

Краткое резюме

  • cd — ключевая команда для навигации в терминале.
  • Используйте абсолютные и относительные пути в зависимости от задачи.
  • Тильда (~), $HOME и $OLDPWD упрощают переходы.
  • CDPATH, pushd/popd, алиасы и zoxide ускоряют повседневную работу.

Важно: настройте свои инструменты под рабочие процессы, но тестируйте изменения в конфигурации оболочки, чтобы не нарушить автоматические скрипты.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

YAML в Go: чтение, запись и лучшие практики
Разработка

YAML в Go: чтение, запись и лучшие практики

Как удалить аккаунт Temu — полное руководство
Руководство

Как удалить аккаунт Temu — полное руководство

Как выйти из Netflix на телевизоре и на всех устройствах
Стриминг

Как выйти из Netflix на телевизоре и на всех устройствах

Как увидеть реальные номера страниц на Kindle
Kindle

Как увидеть реальные номера страниц на Kindle

PPCPIMBackup: резервное копирование Windows Mobile
Резервное копирование

PPCPIMBackup: резервное копирование Windows Mobile

Как цитировать текст на Reddit — веб и мобильный
Социальные сети

Как цитировать текст на Reddit — веб и мобильный