Как выполнить mkdir и перейти в новый каталог в одну строку

Я уже давно пользуюсь консолью linux. Меня раздражает то, что каждый раз, когда я создаю новый каталог, используя mkdir Мне пришлось cd изменить на это. Существует ли единое командное решение для создания и переключения в только что созданный каталог?

Прямо сейчас я делаю:

mkdir php5
cd php5

я могу сделать:

mkdir -someswitch php5

Я хочу что-то простое и чистое. Хороший пример git branch somebranch который делает новую ветвь и git checkout -b somebranch который делает и переключается на новую ветку.

7 ответов

Решение

Переносимый способ сделать это с помощью функции оболочки, а не функции bash (используя bashims как function). Поместите это в соответствующий .profile для интерактивного использования:

 mkdir () {
    case $1 in
       (-c) command mkdir -p "$2" && cd "$2";;
       (*)  command mkdir "$@";;
    esac
 }

Это добавляет -c возможность mkdir для интерактивного использования. Без -c утилита действует как всегда.- И обратите внимание на цитирование "$2" так что это работает с каталогами с пробелами в их имени.

Нашел немного магии:

mkdir foo && cd $_

Или вы можете использовать ';' для разделения команд, например:

mkdir php5.3; CD php5.3

Ничто не мешает вам создать собственный псевдоним или небольшой скрипт

mkdir $1 && cd $1

это то, что я использовал, не уверен, что это соответствует лучшим практикам, но это работает.

Точный ответ, который может помочь. Это легко набрать.

 mkdir php7 && cd! $ 

Вы можете определить функцию в bash, чтобы сделать это:

function mkcd() {
    mkdir $1 && eval cd $1
}
Другие вопросы по тегам