Как создать директорию и сразу перейти в неё одной командой в Linux
Кратко
Эта инструкция показывает, как добавить в ~/.bashrc простую функцию, которая объединяет mkdir и cd в одну команду. После настройки можно создавать папку и автоматически переходить в неё одной строкой.
Зачем это нужно
Если вы часто создаёте новые каталоги из терминала, то команда, объединяющая создание и переход сразу, экономит нажатия и время. Вместо двух команд — mkdir и cd — вы вводите только одно имя функции и аргумент.

Что делает функция
Мы добавляем в ваш файл конфигурации оболочки (обычно ~/.bashrc) функцию, которая вызывает mkdir с именем каталога, а затем выполняет cd в этот каталог только в случае успеха создания. Это безопаснее, чем простая последовательность команд: если mkdir не выполнится, cd не будет выполнен.
Ключевые моменты:
- mkdir создаёт каталог;
- && гарантирует, что cd выполнится только при успехе mkdir;
- “$1” — первый аргумент функции, имя каталога (учитывает пробелы).
Шаг за шагом: добавление функции в .bashrc
- Откройте файл ~/.bashrc в любимом текстовом редакторе. В примере используется gedit:
gedit ~/.bashrcВы можете заменить gedit на nano, vi или любой другой редактор.

- Пролистайте файл до конца и добавьте следующую строку (или группу строк), лучше с комментарием сверху:
# Создаёт каталог и переходит в него
mkdircd(){ mkdir "$1" && cd "$1" ; }- Сохраните файл и закройте редактор (в gedit — «Сохранить», затем крестик в окне).

- Закройте редактор.

- Чтобы изменения вступили в силу, перезапустите сессию оболочки. Самый быстрый вариант — загрузить файл вручную:
source ~/.bashrcИли можно закрыть окно терминала и открыть новое, либо выйти из учётной записи и войти снова.

- Проверьте работу команды. Пример:
mkdircd "Test Directory"Если всё настроено правильно, каталог “Test Directory” будет создан и вы сразу окажетесь внутри него.

Варианты и улучшения (с примерами)
- Поддержка создания вложенных директорий и перехода в последний уровень:
mkdircd(){ mkdir -p "$1" && cd "$1" ; }Флаг -p позволяет создавать всю цепочку директорий (a/b/c) за один вызов.
Поддержка пути с пробелами — уже учтена при использовании кавычек вокруг “$1”.
Приём нескольких аргументов и переход в последний созданный каталог:
mkdircd(){ mkdir -p "$@" && cd "${@: -1}" ; }Здесь “$@” передаёт все аргументы функции, а ${@: -1} — последний аргумент (POSIX-совместимо в bash).
- Быстрый alias (менее гибкий):
alias mkcd='foo' # не рекомендуем: alias не принимает параметры, поэтому лучше функцияФункция предпочтительнее alias, потому что принимает аргументы.
Совместимость с другими оболочками
- zsh: добавьте ту же функцию в ~/.zshrc;
- fish: синтаксис другой, для fish используйте функцию в файле ~/.config/fish/config.fish, например:
function mkdircd
mkdir -p "$argv"; and cd "$argv"
end(В fish $argv — массив аргументов.)
Частые ошибки и их устранение
- “cd: нет такого файла или каталога” — значит mkdir не создал директорию. Проверьте права доступа и путь.
- “mkdir: невозможно создать каталог: Файл существует” — если каталог уже есть, mkdir завершится с ошибкой и cd не выполнится. Чтобы перейти в существующий каталог, используйте mkdir -p или проверку существования.
- Изменения не применились — выполните source ~/.bashrc или откройте новый терминал.
Важно: && гарантирует, что cd выполнится только при успешном завершении mkdir. Это предотвращает попытку перейти в несуществующую директорию.
Критерии приёмки
- Функция добавлена в ~/.bashrc (или соответствующий файл оболочки).
- При вводе mkdircd имя_папки новый каталог создаётся и вы оказываетесь в нём.
- Параметры с пробелами корректно обрабатываются (использование кавычек).
- Функция не вызывает ошибок при несуществующих правах или неправильных путях (сообщения об ошибках читаемы).
Роль‑ориентированные контрольные списки
Для новичка:
- Открыть терминал;
- Вставить функцию в ~/.bashrc;
- Выполнить source ~/.bashrc;
- Проверить командой mkdircd Test.
Для разработчика:
- Добавить поддержку -p;
- Проверить поведение при разных аргументах;
- Добавить комментарии и документацию в .bashrc.
Для системного администратора:
- Убедиться, что изменения не нарушают скрипты автозагрузки;
- Если нужно, распространить функцию через централизованную конфигурацию.
Короткая методика тестирования
- Ввести mkdircd NewDir — ожидаемо: каталог создан и открыт.
- Ввести mkdircd NewDir (еще раз) — ожидаемо: при варианте без -p будет ошибка; с -p — просто окажетесь в каталоге.
- Ввести mkdircd “My Projects/2025” — ожидаемо: каталоги созданы; вы в последнем.
Когда это не подходит (контрпример)
- В скриптах, где важна портируемость и предсказуемость: предпочтительнее явно вызывать mkdir и cd, чтобы логи и поведение были очевидны.
- В окружениях, где запрещено модифицировать пользовательский .bashrc (например, на некоторых серверах с централизованной политикой).
Шпаргалка (сниппеты)
Базовая функция:
mkdircd(){ mkdir "$1" && cd "$1" ; }С -p и поддержкой нескольких аргументов:
mkdircd(){ mkdir -p "$@" && cd "${@: -1}" ; }Команда для немедленного применения изменений:
source ~/.bashrcЗаключение
Эта простая функция экономит время при создании и переходе в новые каталоги из терминала. Она гибкая — вы можете расширить её флагами и поддержкой нескольких аргументов, а также перенести в другую оболочку (zsh, fish). Если вы много работаете в командной строке, такая мелкая автоматизация повышает скорость и комфорт работы.
Ключевые характеристики:
- Безопасное поведение (cd выполняется только при успехе mkdir);
- Поддержка путей с пробелами;
- Легко расширяется под ваши нужды.
Похожие материалы
Управление паролями в Google Chrome
AirPlay в Mountain Lion: настройка и советы
Ускорение Windows 11 для игр — простые шаги
Режим блокировки Lockdown Mode: что это и как включить
Автоответ «Вне офиса» в Outlook для веба