Estou procurando uma maneira de criar um diretório e alterar meu diretório de trabalho atual para um diretório recém-criado usando apenas um único comando. Como posso fazer isso?
ou seja, em vez de fazer
user@Computer:~$ mkdir NewDirectory
user@Computer:~$ cd NewDirectory
user@Computer:~/NewDirectory$
eu quero fazer
user@computer:~$ **command** NewDirectory
user@Computer:~/NewDirectory$
Qual pode ser o comando ?
fonte
mkdir "NewDir" && cd "$_"
funciona muito bem domkdir "NewDir" && cd "NewDir"
que o preenchimento automático não funciona. Aliás, o que é "$ _"?mkdir
para mudar para o novo diretório criado..bashrc
;)Não há função interna para isso, mas você pode usar a funcionalidade do shell para ajudar a não precisar digitar o argumento do
cd
comando novamente após a execuçãomkdir
:cd
, então Esc .(ou Alt+ .) para inserir o último argumento do comando anterior.cd !$
executacd
no último argumento do comando anterior.mkdir
paracd
.Você pode definir uma função simples de criar e alterar diretório em
~/.bashrc
:Recarregue seu
.bashrc
(. ~/.bashrc
) ou reinicie o bash e agora você pode digitarmkcd new-directory
.Essa versão simples falha em alguns casos incomuns, envolvendo nomes de diretórios estranhos ou
..
links simbólicos. Aqui está um que faz. Para explicações, consulte a versão Unix e Linux desta pergunta .fonte
existe uma solução listada acima (igual à minha solução, mas sem a opção -p), mas acho que tem algumas armadilhas.
Isso nos dá dois benefícios:
&& cd "$_"
mudará para o diretório recém-criado, pois$_
hold o valor retornado mymkdir
fonte