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.