Linux cd .. commande


9

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?


2
pourquoi ne pas simplement l'exécuter cd ../../../..et en finir avec cela?
Red Cricket

8
Vous pouvez apprécier pushdet popdou même cd -.
jscott

1
Si vous remontez aussi loin, il peut être judicieux de simplement cd / actual / path / you / want selon la profondeur des dossiers.
Drew Khoury

C'est beaucoup plus d'efforts qu'il n'en vaut la peine. Si vous vous déplacez entre les répertoires, la spécification du chemin complet ou simplement l'utilisation cd -( pour accéder au dernier répertoire ) est plus facile. Je le fais généralement alias h="history|grep"pour pouvoir utiliser les raccourcis d'entrée d'historique à la place. Quelque chose comme h foo3, suivi !450de répéter cette commande.
ewwhite

Ouvrez une autre fenêtre de terminal et ne tapez pas du tout cd ../../../ ..
Matt

Réponses:


18

La manière classique de procéder consiste à définir la CDPATHvariable. Dans votre cas, il peut être réglé sur .:../../../../ou .:/path/to/the/parent/of/foopour obtenir l'effet souhaité. Vous pouvez alors simplement faire cd foo/sub1/bar/destet arriver là où vous voulez.

L'avantage de ceci est que la complétion des onglets pour cdregarde également $CDPATHet fonctionnera comme par magie.


9

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


7

Vous pouvez créer des raccourcis pour ces commandes en ajoutant des alias dans le fichier de configuration bash (~ / .bashrc ou /etc/bash.bashrc)

alias cdd="cd ../../../../"

Ensuite, lorsque vous tapez, cddil exécutera cette commande.


3
Oui, ou function cdd () { cd ../../../../$1/bar/dest ; }, alors vous pouvez simplement taper par exemple cdd foo, cdd foo2.
Andrew Schulman

0

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:

z foo3.*dest

au lieu de:

cd ../../../../foo3/sub1/bar/dest/

(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)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.