99 votes

Y a-t-il un raccourci pour mkdir foo et y accéder immédiatement ?

C'est quelque chose que je fais fréquemment

$ mkdir foo
$ cd foo

Cela fonctionne comme une seule commande, mais cela représente plus de frappes et ne fait pas gagner de temps.

$ mkdir foo && cd foo

Y a-t-il un raccourci pour cela ?

Editar

Avec l'utilisation de l'aide ci-dessous, cela semble être la réponse la plus élégante.

# ~/.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
}

109voto

kzh Points 3913

があります。 bash , zsh Coquilles

Si vous ne voulez pas d'une autre fonction à retenir et si vous n'avez pas peur des bashismes :

$ mkdir /home/foo/doc/bar && cd $_

があります。 $_ (dollar underscore) La variable de commande bash contient le paramètre le plus récent. Ainsi, si un utilisateur tape ce qui suit à la ligne de commande : echo foo bar && echo $_ baz alors la sortie sera la suivante :

foo bar
bar baz

があります。 fish Shell

Dans le poisson Shell, je taperais ce qui suit :

\> mkdir /home/foo/doc/bar
> cd alt + ↑

La touche alt combinée à la touche flèche haut ou bas permet de parcourir l'historique des paramètres de commande.

47voto

Andy Points 3009

Je ne suis pas un expert de Linux/bash, mais essayez de mettre ceci dans votre fichier .bashrc .

function mkdir
{
  command mkdir $1 && cd $1
}

PS Merci à Dennis d'avoir utilisé command mkdir .

44voto

Avijit Gupta Points 541

Pour oh-my-zsh utilisateurs :
$ take 'directory_name'

Référence : https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet

11voto

Alex Points 119

Qu'en est-il :

$ mkdir newdirname; cd $_

C'est un peu plus facile que d'utiliser &&, en combinant les réponses de quack quixote et de kzh.

8voto

petersohn Points 2622

Vous pouvez essayer quelque chose comme ça :

#!/bin/sh
mkdir $1 && cd $1

Sauvegardez ce script à un endroit qui est dans votre chemin, par exemple, /usr/local/bin ou ~/bin (vous devez mettre ce dernier dans votre chemin dans votre fichier ~/.profile). Ensuite, vous pouvez simplement l'appeler.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X