Existe-t-il un moyen d'accéder directement à n'importe quel répertoire à partir d'un autre répertoire?

14

Existe-t-il un moyen d'accéder directement à n'importe quel répertoire à partir d'un autre répertoire? Par exemple, disons que je suis à la racine et que je voulais aller directement à currentProject sans faire :

cd dropbox/dev/currentProject



-root
  -dropbox
     -dev
        -currentProject

Y a-t-il moyen de le faire?

lampShade
la source

Réponses:

21

Vous pouvez utiliser quelque chose comme le saut automatique . Autojump vous permet de passer rapidement aux répertoires fréquemment visités avec la jcommande.

Par exemple, une fois que vous êtes cdentré dans votre currentProjectrépertoire plusieurs fois, vous pouvez y accéder comme ceci:

j currentProject

Vous pouvez même utiliser seulement une partie du nom du répertoire. Vous pourriez donc faire:

j current

Pour cdentrer currentProject.

Wuffers
la source
8

Vous pouvez également ajouter des répertoires communs à votre $ CDPATH

export CDPATH=$HOME

Cela, par exemple, vous permettra d'accéder cdà n'importe quel répertoire de votre dossier de départ depuis n'importe où dans votre système.

plus

Yab
la source
7

Cela ne répond pas directement à votre question, mais si je déduis correctement que vous allez beaucoup sauter entre les répertoires, vous pouvez utiliser un multiplexeur de terminal comme GNU Screen pour garder les différents répertoires ouverts dans différentes fenêtres, et simplement basculez entre eux si nécessaire. J'utilise personnellement Byobu , qui ajoute des fonctionnalités en haut de l'écran.

Abe Voelker
la source
1
Voir aussi: tmux .
Annika Backstrom
5

Vous pouvez définir un alias dans votre profil bash. Fondamentalement, cela vous permet d'abréger une commande avec un mot. Vous pouvez définir actuelProject pointer vers / dropbox / dev / currentProject

n0pe
la source
4

Vous pouvez créer des liens symboliques dans votre répertoire personnel vers l'endroit où vous souhaitez vous rendre.

ln -s /dropbox/dev/currentProject ~/currentProject

De cette façon, vous utilisez toujours cd, mais vous n'avez pas à vous souvenir du chemin complet. Utilisez simplement:

cd ~/currentProject

Lorsque vous arrêtez d'utiliser le lien, supprimez-le.

rm ~/currentProject
Chris Ting
la source
0

Comme Wuffers l'a mentionné ci-dessus, le saut automatique peut le faire pour vous. Il stocke une base de données des répertoires précédemment visités et vous permet d'utiliser une commande comme j <a few letters in the directory path>pour vous déplacer vers ce répertoire. Il existe une commande supplémentaire pour le saut automatique nommée jcqui devrait répondre à vos besoins. jcvous permet d'accéder à un sous-répertoire précédemment visité du répertoire de travail actuel. Il vous suffit donc de visiter le répertoire une fois pour que cela fonctionne jusqu'à ce que vous purgiez la base de données de saut automatique. En outre, vous pouvez également l'ajouter directement à la place avec autojump --add DIR(peut-être en créant la liste d'ajout à partir d'une liste d'arborescence de répertoires si nécessaire).

Snap Shot
la source
0

Dans bash et * csh, il y a les commandes intégrées 'pushd' et 'popd' qui vous permettent de pousser les répertoires sur une pile Last In First Out (avec pushd [directory]), puis de passer rapidement au répertoire supérieur de la pile en utilisant 'popd'. Ainsi, selon la façon dont vous avez chargé la pile, vous pourrez peut-être rapidement naviguer correctement entre les répertoires pour que cela soit fonctionnel pour vous.

Nevin Williams
la source