2017-08-13 1 views
2

Je voudrais utiliser la commande which pour cd directement dans un répertoire.Obtenir le répertoire d'un exécutable à l'aide duquel

cd $(which python3.6)

Il est évident que cela ne fonctionnera pas, car which python3.6 retournera un fichier exécutable.

Maintenant la question est: comment puis-je cd dans l'emplacement de cet exécutable?

Répondre

4

Utilisation dirname:

cd `dirname $(which python3.6)` 

De man(1) page:

Nom:
dirname - bande suffixe non-répertoire du nom de fichier

Synopsis:
dirname NAME
dirname OPTION

Description:
Imprimer NAME avec son arrière retiré/composant; si NAME ne contient aucun /', sortie'. ' (ce qui signifie le répertoire courant).

+0

La vie peut être facile. Merci –

+0

@JohanVergeer, heureux d'aider :) –

4

présumant que vous utilisez zsh comme étiquette, vous pouvez utiliser une notation à court pour y arriver:

cd =python3.6(:h) 

L'expansion = est essentiellement un raccourci pour which. Le :h est pour prendre le "tête" du chemin, donc équivalent à dirname. Voir man zshexpn pour plus de détails sur le modificateur :h et autres.