Как задать базовую директорию для команды 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.

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

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

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

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

ALT: Ввод команды export CDPATH=~/Documents/ в терминале
Альтернативные подходы и когда применять каждый
- Символическая ссылка (symlink)
- Команда: ln -s /полный/путь ~/короткое_имя
- Когда полезно: хотите иметь короткий путь из домашней директории, постоянное и явное указание.
- Пример:
ln -s ~/Documents/htgarticles ~/htgarticles
cd ~/htgarticles- Альяс (alias) или функция в .bashrc
- Альяс подходит для длинных команд, не для навигации по множеству папок.
- Функция может быть гибче, например, проверять существование и открывать файловый менеджер.
Пример функции в ~/.bashrc:
cdd() {
cd ~/Documents/$1 || echo "Папка ~/Documents/$1 не найдена"
}Вызов: cdd htgarticles
- pushd/popd и стек директорий
- Позволяют временно переключаться между каталогами и возвращаться назад.
- Отлично подходят для сценариев, где вы меняете контекст часто.
- Открывать терминал сразу в нужной папке
- В некоторых эмуляторах терминала можно задать стартовую директорию или добавить команду cd в параметры запуска профиля.
Примеры использования и шпаргалка (cheat sheet)
- Установить одну базовую папку для сессии:
export CDPATH=~/Documents/- Установить несколько путей:
export CDPATH=.:~/Projects/:~/Documents/(точка в начале означает сначала искать в текущей директории)
Сделать постоянным: добавить строку в ~/.bashrc
Удалить поведение: удалить или закомментировать строку в ~/.bashrc и перезапустить терминал

ALT: Успешный переход в ~/Documents/htgarticles после установки CDPATH
Критерии приёмки
- После добавления в ~/.bashrc и перезапуска терминала ввод “cd имя_папки” из домашней директории приводит вас в указанную подпапку без указания полного пути.
- Команда корректно обрабатывает отсутствующие папки и не приводит к неожиданным переходам в похожие по имени папки в других местах (проверьте порядок путей в CDPATH).
Отладка и частые ошибки
Ошибка: при вводе export CDPATH=~/Documents/ ничего не меняется.
- Проверьте, вы выполнили команду в той же сессии. Для постоянного эффекта убедитесь, что вы добавили команду в ~/.bashrc и перезапустили терминал.
Ошибка: cd продолжает переходить в локальную папку с таким же именем.
- Убедитесь, что в CDPATH указан порядок путей: если вы хотите, чтобы поиск происходил сначала в глобальном каталоге, поместите его раньше точки.
Примечание про другие оболочки: zsh использует похожие механизмы, но синтаксис и файлы конфигурации отличаются (например, ~/.zshrc).

ALT: Открытие файла .bashrc в текстовом редакторе
Быстрая инструкция (SOP): задать и проверить базовую директорию
- Откройте терминал.
- Выполните: export CDPATH=~/Documents/
- Проверьте: cd имяпапки — вы должны попасть в ~/Documents/имяпапки.
- Чтобы сохранить навсегда: откройте ~/.bashrc и добавьте export CDPATH=~/Documents/.
- Перезапустите терминал.

ALT: Добавление команды export CDPATH в конец файла .bashrc
Когда подход с CDPATH не подходит (контрпример)
- Если вам нужно уникальное имя в домашней директории (короткая ссылка) — лучше создать символьную ссылку.
- Если вы используете несколько проектов с одинаковыми именами папок, CDPATH может привести к путанице; в таком случае предпочтительнее использовать функции или alias с контекстом проекта.
Роль-ориентированные чек-листы
Для разработчика:
- Добавить CDPATH для каталога с проектами.
- Проверить работу в новых и текущих сессиях.
- Документировать настройку в README “как открыть терминал”
Для системного администратора:
- Убедиться, что изменение не нарушает скрипты, ожидающие строгого поведения cd.
- Проверить совместимость с автоматизированными задачами (cron, systemd), которые могут запускаться в неинтерактивных оболочках.

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 — в зависимости от сценария.

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

ALT: Терминал показывает успешный переход в подпапку после настройки CDPATH
Важно: если вы захотите отменить изменение, просто удалите или закомментируйте соответствующую строку в ~/.bashrc и перезапустите терминал.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента