Je me retrouve souvent à faire des commandes comme celle-ci
cd ../../../../../
Y a-t-il un raccourci que je peux utiliser pour faire un cd ../ n fois ?
Je me retrouve souvent à faire des commandes comme celle-ci
cd ../../../../../
Y a-t-il un raccourci que je peux utiliser pour faire un cd ../ n fois ?
Non, il n'y a pas de commande existante pour cela, mais il est trivial d'en écrire une. Ajoutez ces lignes à votre ~/.bashrc
(remerciements à D. Ben Knoble pour en indiquant que la variable doit être local
):
function ncd(){
local path=""
for ((i=1;i<=$1;i++)); do
path="../$path"
done
echo "Moving to $path" >&2
cd "$path"
}
Sauvegardez le fichier, ouvrez un nouveau terminal, et vous pouvez maintenant déplacer N répertoires vers le haut en utilisant ncd N
. Par exemple :
$ pwd
/home/terdon/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
$ ncd 5
Moving to ../../../../../
$ pwd
/home/terdon/dir1/dir2/dir3/dir4
$ ncd 2
Moving to ../../
$ pwd
/home/terdon/dir1/dir2
Dans le monde Windows, Alt + flèche vers le haut permet de naviguer vers le répertoire parent dans l'explorateur Windows. J'ai donc créé quelque chose comme ceci dans ~/.inputrc
:
"\33\33[A": "cd ..\n"
puis en appuyant sur Alt + Flèche vers le haut, on passe au répertoire parent dans le terminal. Vous Vous devez bien sûr appuyer plusieurs fois sur la touche pour aller plus haut, mais j'ai trouvé que c'était très rapide. très rapide. Vous pouvez également modifier le raccourci à votre convenance.
Vous pouvez facilement créer des alias ou des fonctions Shell pour effectuer la tâche donnée. J'utilise personnellement celles-ci :
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
et ainsi de suite, définis manuellement jusqu'à de nombreux points dans mon système d'information. .bashrc
.
Une fonction Shell pourrait au contraire facilement prendre un paramètre numérique, et exécuter cd ..
dans une boucle autant de fois.
Similaire à la réponse de @terdon, avec une utilisation et un rendement légèrement plus naturels :
# go up
up() {
local count="${1:-1}"
local path=../
while (( --count > 0 )) ; do
path="$path"../
done
echo "cd -- $path"
cd -- "$path"
}
Cela définit une fonction up
qui a les propriétés suivantes :
up n
augmentera n
répertoiresup
remontera exactement d'un répertoire (c'est-à-dire que la valeur par défaut de l'option n
est 1)shopt -s autocd
(d'où le --
qui sont techniquement inutiles)OLDPWD
est correctement réglé sur la valeur actuelle de PWD
plutôt plutôt que l'un des répertoires intermédiaires. Cela signifie que up 5; cd -
fonctionne comme prévu.Utilisation de le hack printf :
function updir(){
cd $(printf '../%.0s' {1..$1})
}
E.G. updir 5
vous fera monter de 5 répertoires.
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.