C'est quelque chose que je fais fréquemment
$ mkdir foo
$ cd foo
Cela fonctionne comme une seule commande, mais cela prend plus de frappe et ne fait pas gagner du temps.
$ mkdir foo && cd foo
Y a-t-il un raccourci pour cela?
Modifier
Avec l'aide 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
}
mkdir
si vous utilisezcommand mkdir $1
plutôt quemkdir $1
dans le corps de la fonction.Réponses:
Je ne suis pas un expert Linux / bash, mais essayez de mettre ceci dans votre
.bashrc
.PS Merci à Dennis d'avoir utilisé
command mkdir
.la source
`which mkdir`
, utilisez simplementcommand mkdir
.man command
- pourriez-vous me diriger vers une référence? (Je peux comprendre ce qu'il fait, mais il faut payer pour être approfondi;)command
est décrit dans le manuel debash
(dont il fait partie intégrante; ce n'est pas une commande séparée). Tu pourrais aussi essayerhelp command
.Les
bash
,zsh
CoquillesSi vous ne voulez pas qu'une autre fonction soit mémorisée et ne craignez pas les bashismes:
La
$_
variable de commande bash (soulignement dollar) contient le paramètre le plus récent. Donc, si un utilisateur devait taper ce qui suit sur la ligne de commande:,echo foo bar && echo $_ baz
le résultat serait le suivant:La
fish
coquilleDans la coquille de poisson, je taperais ce qui suit:
La touche Alt combinée avec la touche fléchée haut ou bas permet de parcourir l'historique des paramètres de commande.
la source
zsh
aussi.Pour les utilisateurs de oh-my-zsh :
$ take 'directory_name'
Référence: https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet
la source
type take
, alors vous obtiendreztake is a shell function from /home/username/.oh-my-zsh/lib/functions.zsh
. vi le fichier alors vous obtenezfunction take() { mkdir -p $@ && cd ${@:$#} }
Qu'en est-il de:
C’est un peu plus facile que d’utiliser &&, en combinant les réponses de Quack Quichote et de KZH.
la source
&&
est quecd
ne sera pas exécuté si lamkdir
commande échoueVous pouvez essayer quelque chose comme ça:
Enregistrez ce script dans un emplacement de 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.
la source
cd
dans le contexte de l'exécution du~/bin/mkcd
script, pas l'appelant du script.la source
Voici une fonction simple que j'ai mise dans mon
~/.config/fish/config.fish
fichier et qui accomplit cette tâche:La
-pv
balise permet la création de répertoires avec des sous-répertoires.la source
En fonction du résultat souhaité si le répertoire existe déjà.
Echec si le répertoire existe déjà
Changer de répertoire quand même
Utilisation mkcd some / path / to / my / dir
la source
J'ai trouvé que la fonction ci-dessous ne peut créer qu'un seul répertoire. Si je veux créer des sous-répertoires en même temps, cela ne fonctionne pas:
Alors je l'ai changé et maintenant ça marche très bien!
la source