Eu não sou especialista em Linux / bash, mas tente colocar isso em seu .bashrc
.
function mkdir
{
command mkdir $1 && cd $1
}
PS Obrigado ao Dennis por usar command mkdir
.
Isso é algo que faço com frequência
$ mkdir foo
$ cd foo
Isso funciona como um único comando, mas são mais pressionamentos de tecla e não economizam tempo.
$ mkdir foo && cd foo
Existe um atalho para isso?
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
}
bash
, zsh
Se você não quiser que outra função se lembre e não se importe com os bashisms:
$ mkdir /home/foo/doc/bar && cd $_
A variável de comando $_
(underscore do dólar) bash 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:
foo bar
bar baz
fish
Shell No shell de peixe, eu digitaria o seguinte:
> mkdir /home/foo/doc/bar > cd alt + ↑
A tecla alt combinada com a tecla de seta para cima ou para baixo percorre o histórico dos parâmetros de comando.
Para usuários oh-my-zsh :% $ take 'directory_name'
Referência: link
E sobre:
$ mkdir newdirname; cd $_
É um pouco mais fácil do que usar o & & amp ;, combinando as respostas do Quack Quixote e do kzh.
Você pode tentar algo assim:
#!/bin/sh
mkdir $1 && cd $1
Salve este script em algum lugar que esteja no seu caminho, por exemplo, / usr / local / bin ou ~ / bin (você tem que colocar este último em seu caminho no seu arquivo ~ / .profile). Então você pode simplesmente ligar.
$echo 'mkcd() { mkdir -p "$@" && cd "$_"; }' >> ~/.bashrc
$mkcd < pathtofolder/foldername >
Dependendo do resultado desejado, se o diretório já existir.
Falha se o diretório já existe
mkcd() {
mkdir $1 && cd $1
}
Altere o diretório independentemente
mkcd() {
mkdir $1 ; cd $1
}
Uso mkcd alguns / path / to / my / dir
Descobri que a função abaixo só pode criar um diretório, se eu quiser fazer subdiretórios ao mesmo tempo, não funciona:
function mkdir
{
command mkdir $1 && cd $1
}
Então eu mudei e agora está funcionando muito bem!
function mkcd
{
command mkdir -pv $1 && cd $1 && echo "Now in 'pwd'"
}
Aqui está uma função simples que eu coloco no meu arquivo ~/.config/fish/config.fish
que realiza essa tarefa:
function mkcd
mkdir -pv $argv;
cd $argv;
end
A tag -pv
permite a criação de diretórios com subdiretórios.