Команда cd в 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
- Вызвать cd без аргумента → ожидание: переход в $HOME.
- cd ../.. из глубоко вложенного каталога → ожидание: подняться на два уровня.
- cd - между двумя каталогами → ожидание: переключение туда и обратно.
- cd “Name With Spaces” и cd Name\ With\ Spaces → ожидание: попасть в каталог с пробелами.
- Включённый CDPATH и попытка cd в каталог, который есть в одном из путей CDPATH → ожидание: переход найденный путь.
Краткое резюме
- cd — ключевая команда для навигации в терминале.
- Используйте абсолютные и относительные пути в зависимости от задачи.
- Тильда (~), $HOME и $OLDPWD упрощают переходы.
- CDPATH, pushd/popd, алиасы и zoxide ускоряют повседневную работу.
Важно: настройте свои инструменты под рабочие процессы, но тестируйте изменения в конфигурации оболочки, чтобы не нарушить автоматические скрипты.
Похожие материалы
YAML в Go: чтение, запись и лучшие практики
Как удалить аккаунт Temu — полное руководство
Как выйти из Netflix на телевизоре и на всех устройствах
Как увидеть реальные номера страниц на Kindle
PPCPIMBackup: резервное копирование Windows Mobile