Это то, что я делаю часто
$ mkdir foo
$ cd foo
Это работает как одна команда, но это больше нажатий клавиш и не экономит время.
$ mkdir foo && cd foo
Есть ли ярлык для этого?
редактировать
С помощью приведенной ниже справки это кажется самым элегантным ответом.
# ~/.bashrc
function mkcd {
if [ ! -n "$1" ]; then
echo "Enter a directory name"
elif [ -d $1 ]; then
echo "\`$1' already exists"
else
mkdir $1 && cd $1
fi
}
mkdir
если используете ее,command mkdir $1
а не толькоmkdir $1
в теле функции.Ответы:
Я не эксперт по Linux / Bash, но попробуйте добавить это в свой
.bashrc
.PS Спасибо Деннису за использование
command mkdir
.источник
`which mkdir`
, чтобы просто использоватьcommand mkdir
.man command
- вы могли бы направить меня к ссылке? (Я могу понять, что он делает, но стоит быть внимательным;)command
описано в руководстве пользователяbash
(которое является встроенным; это не отдельная команда). Вы также можете попробоватьhelp command
.В
bash
,zsh
РаковиныЕсли вы не хотите, чтобы другая функция запоминалась и не возражали против ошибок:
$_
(Доллары подчеркивание) переменная команда Баша содержит самый последний параметр. Таким образом, если пользователь введет следующее в командной строке:,echo foo bar && echo $_ baz
то результат будет следующим:fish
ShellВ раковине рыбы я бы напечатал следующее:
Клавиша alt в сочетании с клавишей со стрелкой вверх или вниз переключает историю параметров команды.
источник
zsh
тоже работает .Для пользователей oh-my-zsh :
$ take 'directory_name'
Ссылка: https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet
источник
type take
, тогда вы получитеtake is a shell function from /home/username/.oh-my-zsh/lib/functions.zsh
. VI файл, то вы получитеfunction take() { mkdir -p $@ && cd ${@:$#} }
Что о:
Это немного проще, чем использовать &&, комбинируя ответы Quack Quixote и KZH.
источник
&&
том, чтоcd
не будет выполнено, еслиmkdir
команда потерпит неудачуВы можете попробовать что-то вроде этого:
Сохраните этот сценарий в каком-либо месте вашего пути, например, / usr / local / bin или ~ / bin (вы должны поместить этот последний в свой путь в файле ~ / .profile). Тогда вы можете просто позвонить.
источник
cd
внутри контекста выполнения~/bin/mkcd
скрипта, а не вызывающего скрипта.источник
Вот простая функция, которую я вставил в свой
~/.config/fish/config.fish
файл, которая выполняет эту задачу:-pv
Тег позволяет для создания каталогов с подкаталогами.источник
В зависимости от желаемого результата, если каталог уже существует.
Ошибка, если каталог уже существует
Изменить каталог независимо
Использование mkcd some / path / to / my / dir
источник
Я обнаружил, что нижеприведенная функция может создать только один каталог, если я хочу создать подкаталоги одновременно, он не работает:
Так что я изменил его, и теперь он отлично работает!
источник