Dites si je dois souvent faire ça:
cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/
Existe-t-il un moyen plus rapide de ne pas toujours taper ../../../../
autant de fois? Des idées créatives?
cd ../../../..
et en finir avec cela?pushd
etpopd
ou mêmecd -
.cd -
( pour accéder au dernier répertoire ) est plus facile. Je le fais généralementalias h="history|grep"
pour pouvoir utiliser les raccourcis d'entrée d'historique à la place. Quelque chose commeh foo3
, suivi!450
de répéter cette commande.Réponses:
La manière classique de procéder consiste à définir la
CDPATH
variable. Dans votre cas, il peut être réglé sur.:../../../../
ou.:/path/to/the/parent/of/foo
pour obtenir l'effet souhaité. Vous pouvez alors simplement fairecd foo/sub1/bar/dest
et arriver là où vous voulez.L'avantage de ceci est que la complétion des onglets pour
cd
regarde également$CDPATH
et fonctionnera comme par magie.la source
Vous pouvez utiliser le saut automatique qui apprend automatiquement à partir de la commande cd précédente et vous n'aurez qu'à spécifier la chaîne unique du chemin complet la prochaine fois. ex.
j foo
,j foo1
,j foo2
la source
Vous pouvez créer des raccourcis pour ces commandes en ajoutant des alias dans le fichier de configuration bash (~ / .bashrc ou /etc/bash.bashrc)
Ensuite, lorsque vous tapez,
cdd
il exécutera cette commande.la source
function cdd () { cd ../../../../$1/bar/dest ; }
, alors vous pouvez simplement taper par exemplecdd foo
,cdd foo2
.J'ai récemment rencontré https://github.com/rupa/z , qui vous permet de passer à un répertoire récemment utilisé par regex. Vous pouvez donc faire quelque chose comme:
au lieu de:
(tant que vous avez déjà visité ce répertoire, et rien de plus récent / fréquemment utilisé ne correspond à cette expression régulière)
la source