Question Commande Linux cd ..


Dites si j'ai besoin de le faire beaucoup:

cd ../../../../foo/sub1/bar/dest/
cd ../../../../foo2/sub1/bar/dest/
cd ../../../../foo3/sub1/bar/dest/
cd ../../../../foo/sub1/bar/dest/

Y at-il un moyen plus rapide de ne pas toujours taper ../../../../ tellement de fois? Des idées créatives?


9
2017-12-24 03:44


origine


pourquoi ne pas simplement exécuter cd ../../../.. et en finir avec ça? - Red Cricket
Vous pouvez profiter pushd et popd ou même cd -. - jscott
Si vous revenez aussi loin en arrière, il peut être judicieux de simplement cd / actual / path / vous / voulez en fonction de la profondeur des dossiers. - Drew Khoury
C'est beaucoup plus d'effort que ça ne vaut. Si vous vous déplacez entre des répertoires, spécifiez le chemin complet ou utilisez simplement cd - (aller au dernier répertoire) est plus facile. Je typiquement alias h="history|grep" afin que je puisse utiliser les raccourcis d'entrée de l'historique à la place. Quelque chose comme h foo3, suivi par !450 répéter cette commande. - ewwhite
Ouvrez une autre fenêtre de terminal et ne tapez pas cd ../../../ .. du tout - Matt


Réponses:


La manière classique de le faire est de définir le CDPATH variable. Dans votre cas, il pourrait être réglé sur .:../../../../ ou .:/path/to/the/parent/of/foo pour obtenir l'effet désiré. Vous pouvez alors simplement faire cd foo/sub1/bar/dest et allez où vous voulez.

L’avantage de ceci est que la complétion d’onglet cd regarde aussi $CDPATH et va travailler comme par magie.


18
2017-12-24 09:46





Vous pouvez utiliser saut automatique qui apprend automatiquement de la commande précédente du cd et il vous suffit de spécifier une chaîne unique à partir du chemin complet la prochaine fois. ex.      j foo,      j foo1,      j foo2


9
2017-12-24 05:13





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 ../../../../"

Puis quand vous tapez cdd il exécutera cette commande.


7
2017-12-24 03:55



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


Je suis récemment tombé sur https://github.com/rupa/z, qui vous permet d’accéder à un répertoire récemment utilisé par regex. Pour que vous puissiez 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 ne correspond plus à cette regex)


0
2017-12-30 01:07