Как автоматически исправлять опечатки при использовании cd в Bash
Что делает cdspell
Опция cdspell в Bash пытается исправить небольшие ошибки при вводе имени каталога в команде cd. Она распознаёт типичные опечатки: перестановку соседних символов, пропуск символа и лишний символ. При успешном совпадении Bash покажет предполагаемое имя каталога и автоматически выполнит переход в него.
Кратко: cdspell — это лёгкий «автокорректор» для навигации по каталогам в командной строке.
Зачем это удобно
- Экономит время при навигации по глубоко вложенным путям.
- Особенно полезно на серверах и в виртуальных средах без графического интерфейса.
- Уменьшает количество ошибок и фрагментации сессий (менее частые возвраты назад).
Шаги — как включить в ~/,bashrc
- Откройте файл .bashrc в текстовом редакторе. Например, с помощью gedit:
gedit ~/.bashrcВы можете использовать любой удобный редактор (nano, vi, code). Замените gedit на ваш редактор.

- Прокрутите файл до конца и добавьте строку:
shopt -s cdspellМожно добавить комментарий, чтобы не забыть назначение строки:
# Включить автоисправление опечаток для команды cd
shopt -s cdspell- Сохраните файл и закройте редактор.

- Завершите текущую сессию терминала и войдите заново (или закройте терминал и откройте снова), чтобы изменения вступили в силу. Либо выполните команду exit или закройте окно.
exit

- Проверьте работу. Если вы введёте cd с небольшой опечаткой, Bash предложит исправление и выполнит переход.
cd /var/wwt
# Вывод: /var/www
# Переход в /var/www
Как применить опцию сразу в текущей сессии
Если вы не хотите выходить и заходить снова, можно включить опцию прямо сейчас:
shopt -s cdspellЭто включит поведение для текущей оболочки до следующего запуска. Добавление той же строки в ~/.bashrc делает настройку постоянной.
Когда это не работает — ограничения и примеры
- cdspell исправляет только «малые» опечатки. Если введено совершенно другое имя (несовпадающее коренной части), исправления не будет.
- Не работает с символами, отличающимися регистром, если файловая система регистрозависимая и расхождения значительны.
- Не подходит для сложных шаблонов пути, когда нужны символьные ссылки или специальные подстановки.
Примеры неудачных случаев:
- Ввод большого фрагмента пути с множеством ошибок: cd /very/long/paht/with/many/erros
- Переход к удалённым системам через нестандартные псевдонимы оболочки (cdspell влияет только на стандартный cd).
Альтернативные подходы
- Использовать оболочку zsh с плагинами автокомплита и исправления (например, плагин zsh-autosuggestions или setopt CORRECT). zsh даёт более гибкую автоисправку.
- Использовать fzf для интерактивного выбора каталогов: cd $(find . -type d | fzf)
- Настроить алиасы и функции для часто используемых путей (короткие ярлыки уменьшают вероятность опечаток).
Тестовые случаи и критерии приёмки
Критерии приёмки — как убедиться, что всё работает:
- При опечатке в имени каталога Bash предлагает исправление и выполняет cd.
- Добавленная строка присутствует в ~/.bashrc и не дублирует логику в других конфигурационных файлах.
- Поведение включается немедленно при исполнении shopt -s cdspell.
Простейшие тест-кейсы:
- Создайте каталог testfolder и выполните cd testfodler — ожидается переход в testfolder.
- Попробуйте переставить соседние символы: cd docuemnts (ожидается documents).
- Введите полностью неверный путь — ожидается стандартная ошибка “No such file or directory”.
Рекомендации для администраторов и разработчиков
- Администраторы: добавляйте строку в /etc/skel/.bashrc для новых пользователей, если хотите распространять настройку по умолчанию.
- Разработчики: используйте комбинацию cdspell + алиасов для ускорения работы в проектах.
Чеклист перед деплоем на множество машин:
- Проверить совместимость с версией Bash (cdspell доступен в стандартных Shell-билдах Bash 4+).
- Внести изменение в профиль пользователя или в шаблон для новых пользователей.
- Проинформировать пользователей об изменении поведения команды cd.
Краткий глоссарий
- cdspell: опция Bash, автоматически исправляющая небольшие опечатки в пути для команды cd.
- ~/.bashrc: файл конфигурации Bash, выполняемый при старте интерактивной оболочки.
Итог
Включение shopt -s cdspell — быстрый и безопасный способ сократить количество опечаток при навигации в терминале. Это простая настройка, которая экономит время и повышает удобство работы с директорией.
Важное: cdspell помогает при небольших опечатках, но не заменит осмысленных проверок и структурированных алиасов для сложных сценариев.
Похожие материалы
Включить и отключить заливку полей в Word
Как сохранять твиты в закладки бесплатно
Apple Music на Alexa — как слушать на Echo
Portainer — графический интерфейс для Docker
Разблокировать в Facebook Messenger — ПК и мобильный