Isso é algo que faço frequentemente
$ mkdir foo
$ cd foo
Isso funciona como um único comando, mas é mais pressionamento de tecla e economiza tempo.
$ mkdir foo && cd foo
Existe um atalho para isso?
Editar
Com o uso da ajuda abaixo, esta parece ser a resposta mais elegante.
# ~/.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
}
command-line
bash
terminal
shortcuts
macek
fonte
fonte
mkdir
se você usar emcommand mkdir $1
vez de apenasmkdir $1
no corpo da função.Respostas:
Eu não sou especialista em Linux / bash, mas tente colocar isso no seu
.bashrc
.PS Obrigado a Dennis por usar
command mkdir
.fonte
`which mkdir`
, basta usarcommand mkdir
.man command
- você poderia me indicar uma referência? (Eu posso descobrir o que ele faz, mas vale a pena ser completa;)command
é descrito no manual debash
(do qual é incorporado; não é um comando separado). Você também pode tentarhelp command
.Os
bash
,zsh
ShellsSe você não quer que outra função se lembre e não se importe com basismos:
A
$_
variável de comando bash (sublinhado do dólar) contém o parâmetro mais recente. Portanto, se um usuário digitar o seguinte na linha de comando:,echo foo bar && echo $_ baz
a saída será a seguinte:The
fish
ShellNa casca do peixe, digitei o seguinte:
A tecla alt combinada com a tecla de seta para cima ou para baixo percorre o histórico de parâmetros do comando.
fonte
zsh
também.Para usuários oh-my-zsh :
$ take 'directory_name'
Referência: https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet
fonte
type take
, então você receberátake is a shell function from /home/username/.oh-my-zsh/lib/functions.zsh
. vi o arquivo, em seguida, você começafunction take() { mkdir -p $@ && cd ${@:$#} }
Sobre:
É um pouco mais fácil do que usar &&, combinando as respostas de Quack Quackote e Kzh.
fonte
&&
é quecd
não será executada se omkdir
comando falharVocê pode tentar algo como isto:
Salve este script em algum lugar que esteja no seu caminho, por exemplo, / usr / local / bin ou ~ / bin (você deve colocar este último no caminho no seu arquivo ~ / .profile). Então você pode simplesmente chamá-lo.
fonte
cd
dentro do contexto da execução do~/bin/mkcd
script, não o chamador do script.fonte
Aqui está uma função simples que eu coloquei no meu
~/.config/fish/config.fish
arquivo que realiza esta tarefa:A
-pv
tag permite a criação de diretórios com subdiretórios.fonte
Dependendo do resultado desejado, se o diretório já existir.
Falha se o diretório já existir
Alterar diretório independentemente
Uso mkcd some / path / to / my / dir
fonte
Eu descobri que a função abaixo pode criar apenas um diretório, se eu quiser criar subdiretórios ao mesmo tempo, isso não funciona:
Então eu mudei e agora está funcionando muito bem!
fonte