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

Как задать базовую директорию для команды cd в Linux

• 6 min read • Linux • Обновлено 25 Nov 2025
Установить базовую директорию для cd в Linux
Установить базовую директорию для cd в Linux

Зачем это нужно

По умолчанию терминал в Linux открывается в вашей домашней директории. Если вы часто работаете с подпапками внутри одной и той же родительской папки (например, ~/Documents), каждый раз вводить полный путь неудобно. Переменная CDPATH позволяет указать одну или несколько «базовых» директорий, которые bash будет искать при выполнении команды cd.

Коротко: CDPATH упрощает навигацию по часто используемым каталогам.

Пример: задача и поведение по умолчанию

Откройте терминал и проверьте текущую директорию:

pwd

В примере исходной статьи текущая директория — /home/lori (ваша будет отличаться). Если в ~/Documents есть папка htgarticles, попытка выполнить

cd htgarticles

из домашней директории даст ошибку «No such file or directory», потому что bash ищет htgarticles только внутри текущей директории.

Выходы, которые обычно используют пользователи:

  • Сначала перейти в Documents, затем в подпапку:
cd Documents/
cd htgarticles/
  • Или указать полный путь один раз:
cd ~/Documents/htgarticles

Оба способа работают, но более длинные.

Быстрое решение: установить CDPATH для текущей сессии

Чтобы bash искал директории внутри ~/Documents при вводе относительных имён, выполните в терминале:

export CDPATH=~/Documents/

Важно: команда export — в нижнем регистре; имя переменной CDPATH — в верхнем регистре. Замените ~/Documents/ на любую другую родительскую директорию, которую вы используете чаще всего.

После этой команды из домашней папки можно просто выполнить:

cd htgarticles

и вы окажетесь в ~/Documents/htgarticles.

How to Define the Base Directory for the “cd” Command in Linux

ALT: Окно терминала Linux с командой cd и путями

Сделать изменение постоянным: правка .bashrc

Чтобы CDPATH применялся при каждом запуске терминала, добавьте экспорт в файл .bashrc в вашей домашней директории.

  1. Перейдите в домашнюю директорию, если вы не там.
  2. Откройте .bashrc в удобном редакторе. Пример с gedit:
gedit .bashrc
  1. Прокрутите файл в конец и добавьте строку:
export CDPATH=~/Documents/
  1. При желании добавьте комментарий выше строки:
# Ускорённая навигация по подпапкам в ~/Documents
export CDPATH=~/Documents/
  1. Сохраните файл и закройте редактор.

01_running_pwd_command

ALT: Результат выполнения команды pwd показывает домашнюю директорию

После этого изменение не подействует в уже открытом окне терминала. Закройте текущую сессию (exit или закрыть окно) и откройте новый терминал (например, Ctrl+Alt+T). Теперь можно из домашней директории делать просто cd имя_папки, и bash найдёт её внутри указанных путей.

02_no_such_file_or_directory

ALT: Сообщение об ошибке «No such file or directory» при попытке cd в несуществующую папку

03_changing_directories

ALT: Последовательность команд cd для перехода в Documents и затем в подпапку

Что ещё стоит знать о CDPATH

  • CDPATH может содержать несколько путей, разделённых двоеточием. Bash ищет целевую директорию в каждом из путей слева направо.
  • Если имя директории совпадает с директориями в нескольких путях, будет использован первый найденный.
  • CDPATH влияет только на команду cd и не меняет pwd по умолчанию при открытии терминала.
  • При использовании с относительными именами будьте внимательны: если в текущей директории есть одноимённая папка, bash обычно отдаст приоритет локальной (поведение корректируется порядком в CDPATH).

04_export_cdpath_command

ALT: Ввод команды export CDPATH=~/Documents/ в терминале

Альтернативные подходы и когда применять каждый

  1. Символическая ссылка (symlink)
  • Команда: ln -s /полный/путь ~/короткое_имя
  • Когда полезно: хотите иметь короткий путь из домашней директории, постоянное и явное указание.
  • Пример:
ln -s ~/Documents/htgarticles ~/htgarticles
cd ~/htgarticles
  1. Альяс (alias) или функция в .bashrc
  • Альяс подходит для длинных команд, не для навигации по множеству папок.
  • Функция может быть гибче, например, проверять существование и открывать файловый менеджер.

Пример функции в ~/.bashrc:

cdd() {
  cd ~/Documents/$1 || echo "Папка ~/Documents/$1 не найдена"
}

Вызов: cdd htgarticles

  1. pushd/popd и стек директорий
  • Позволяют временно переключаться между каталогами и возвращаться назад.
  • Отлично подходят для сценариев, где вы меняете контекст часто.
  1. Открывать терминал сразу в нужной папке
  • В некоторых эмуляторах терминала можно задать стартовую директорию или добавить команду cd в параметры запуска профиля.

Примеры использования и шпаргалка (cheat sheet)

  • Установить одну базовую папку для сессии:
export CDPATH=~/Documents/
  • Установить несколько путей:
export CDPATH=.:~/Projects/:~/Documents/

(точка в начале означает сначала искать в текущей директории)

  • Сделать постоянным: добавить строку в ~/.bashrc

  • Удалить поведение: удалить или закомментировать строку в ~/.bashrc и перезапустить терминал

05_changing_directory_now_works

ALT: Успешный переход в ~/Documents/htgarticles после установки CDPATH

Критерии приёмки

  • После добавления в ~/.bashrc и перезапуска терминала ввод “cd имя_папки” из домашней директории приводит вас в указанную подпапку без указания полного пути.
  • Команда корректно обрабатывает отсутствующие папки и не приводит к неожиданным переходам в похожие по имени папки в других местах (проверьте порядок путей в CDPATH).

Отладка и частые ошибки

  • Ошибка: при вводе export CDPATH=~/Documents/ ничего не меняется.

    • Проверьте, вы выполнили команду в той же сессии. Для постоянного эффекта убедитесь, что вы добавили команду в ~/.bashrc и перезапустили терминал.
  • Ошибка: cd продолжает переходить в локальную папку с таким же именем.

    • Убедитесь, что в CDPATH указан порядок путей: если вы хотите, чтобы поиск происходил сначала в глобальном каталоге, поместите его раньше точки.
  • Примечание про другие оболочки: zsh использует похожие механизмы, но синтаксис и файлы конфигурации отличаются (например, ~/.zshrc).

06_opening_bashrc_file

ALT: Открытие файла .bashrc в текстовом редакторе

Быстрая инструкция (SOP): задать и проверить базовую директорию

  1. Откройте терминал.
  2. Выполните: export CDPATH=~/Documents/
  3. Проверьте: cd имяпапки — вы должны попасть в ~/Documents/имяпапки.
  4. Чтобы сохранить навсегда: откройте ~/.bashrc и добавьте export CDPATH=~/Documents/.
  5. Перезапустите терминал.

07_adding_export_command_to_bashrc_file

ALT: Добавление команды export CDPATH в конец файла .bashrc

Когда подход с CDPATH не подходит (контрпример)

  • Если вам нужно уникальное имя в домашней директории (короткая ссылка) — лучше создать символьную ссылку.
  • Если вы используете несколько проектов с одинаковыми именами папок, CDPATH может привести к путанице; в таком случае предпочтительнее использовать функции или alias с контекстом проекта.

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

Для разработчика:

  • Добавить CDPATH для каталога с проектами.
  • Проверить работу в новых и текущих сессиях.
  • Документировать настройку в README “как открыть терминал”

Для системного администратора:

  • Убедиться, что изменение не нарушает скрипты, ожидающие строгого поведения cd.
  • Проверить совместимость с автоматизированными задачами (cron, systemd), которые могут запускаться в неинтерактивных оболочках.

08_closing_gedit

ALT: Закрытие текстового редактора после сохранения .bashrc

Решающее дерево: выбрать метод ускорения навигации

flowchart TD
  A[Часто работаете в одной родительской папке?] -->|Да| B[Хотите поисковую автономию 'cd ищет в списке'?]
  A -->|Нет| G[Используйте симлинки или alias]
  B -->|Да| C[Используйте CDPATH]
  B -->|Нет| G
  C --> D[Добавить в ~/.bashrc для постоянства]
  D --> E[Проверить на конфликт имён]
  E --> F[Готово]
  G --> F

Короткая сводка

  • CDPATH экономит ввод и ускоряет переход в подпапки часто используемых директорий.
  • Добавьте export CDPATH=~/ваша_папка/ в ~/.bashrc, чтобы сделать поведение постоянным.
  • Рассмотрите альтернативы: симлинки, alias-функции, pushd/popd — в зависимости от сценария.

09_closing_terminal_window

ALT: Закрытие окна терминала и открытие нового для применения изменений

Резюме

CDPATH — простой и мощный способ сделать навигацию по терминалу удобнее, если у вас есть одна или несколько папок, в которых вы постоянно работаете. Это трёхшаговое изменение: установить переменную для сессии, проверить поведение и добавить команду в ~/.bashrc для постоянного эффекта. Если же у вас более сложные требования (конфликты имён, разные проекты), рассмотрите симлинки или пользовательские функции в shell.

10_base_directory_changed

ALT: Терминал показывает успешный переход в подпапку после настройки CDPATH

Важно: если вы захотите отменить изменение, просто удалите или закомментируйте соответствующую строку в ~/.bashrc и перезапустите терминал.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро