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?
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
}
Je ne suis pas un expert Linux/bash, mais essayez de mettre ceci dans votre .bashrc
.
function mkdir
{
command mkdir $1 && cd $1
}
PS Merci à Dennis d'avoir utilisé command mkdir
.
bash
, zsh
shellSi vous ne voulez pas qu'une autre fonction soit mémorisée et ne craignez pas les bashismes:
$ mkdir /home/foo/doc/bar && cd $_
La variable de commande $_
(dollar underscore) bash 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
, alors le résultat serait le suivant:
foo bar
bar baz
fish
Dans la coquille de poisson, je taperais ce qui suit:
> mkdir/home/foo/doc/bar > cd alt + ↑
La touche Alt combinée avec la touche fléchée haut ou bas permet de parcourir l'historique des paramètres de commande.
Pour les utilisateurs oh-my-zsh :$ take 'directory_name'
Référence: https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet
Qu'en est-il de:
$ mkdir newdirname; cd $_
C’est un peu plus facile que d’utiliser &&, en combinant les réponses de Quack Quichote et de KZH.
Vous pouvez essayer quelque chose comme ça:
#!/bin/sh
mkdir $1 && cd $1
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.
$echo 'mkcd() { mkdir -p "$@" && cd "$_"; }' >> ~/.bashrc
$mkcd < pathtofolder/foldername >
Voici une fonction simple que je mets dans mon fichier ~/.config/fish/config.fish
qui accomplit cette tâche:
function mkcd
mkdir -pv $argv;
cd $argv;
end
La balise -pv
permet la création de répertoires avec des sous-répertoires.
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:
function mkdir
{
command mkdir $1 && cd $1
}
Alors je l'ai changé et maintenant ça marche très bien!
function mkcd
{
command mkdir -pv $1 && cd $1 && echo "Now in `pwd`"
}
En fonction du résultat souhaité si le répertoire existe déjà.
Échec si le répertoire existe déjà
mkcd() {
mkdir $1 && cd $1
}
Changer de répertoire sans se soucier
mkcd() {
mkdir $1 ; cd $1
}
Utilisation mkcd un/chemin/vers/mon/répertoire