Для этого нет встроенной функции, но вы можете использовать функциональность оболочки, чтобы помочь вам не вводить аргумент cd
команды снова после запуска mkdir
:
- Введите
cd
, затем Esc .(или Alt+ .), чтобы вставить последний аргумент из предыдущей команды.
cd !$
выполняется cd
по последнему аргументу предыдущей команды.
- Нажмите, Upчтобы вызвать предыдущую командную строку, затем отредактируйте ее, чтобы перейти
mkdir
в cd
.
Вы можете определить простую функцию make-and-change-directory в вашем ~/.bashrc
:
mkcd () { mkdir "$1" && cd "$1"; }
Перезагрузите ваш .bashrc
( . ~/.bashrc
) или перезапустите bash, и теперь вы можете напечатать mkcd new-directory
.
Эта простая версия дает сбой в некоторых необычных случаях, связанных со странными именами каталогов или ..
символическими ссылками. Вот тот, который делает. Для объяснения см. Версию этого вопроса для Unix и Linux .
mkcd () {
case "$1" in
/*) mkdir -p "$1" && cd "$1";;
*/../*) (cd "./${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd "$1";;
../*) (cd .. && mkdir -p "${1#.}") && cd "$1";;
*) mkdir -p "./$1" && cd "./$1";;
esac
}
mkdir "NewDir" && cd "$_"
работает лучше, чемmkdir "NewDir" && cd "NewDir"
автоматическое завершение не работает. Кстати, что такое "$ _"?