9 votes

Impossible d'exécuter un programme particulier à partir du terminal sans utiliser son chemin d'accès complet.

Je veux exécuter un programme ds9 à partir du terminal. Le programme est clairement dans le PATH, que j'ai déterminé en exécutant :

which ds9
/Users/evgenii/miniconda3/envs/iraf/bin/ds9

Mais quand je lance la commande en tapant ds9 il me montre l'erreur suivante :

-bash: /Applications/ds9.app/Contents/MacOS/ds9: No such file or directory

Je peux toujours l'exécuter correctement si j'utilise le chemin complet comme suit :

/Users/evgenii/miniconda3/envs/iraf/bin/ds9

Qu'est-ce qui se passe ? Pourquoi essaie-t-il de s'exécuter /Applications/ds9.app ?

Les permissions sont les suivantes :

-rwxrwxr-x@ 1 evgenii  staff  18613852  9 Nov 20:13 /Users/evgenii/miniconda3/envs/iraf/bin/ds9

Mise à jour :

Voici le résultat de l'exécution type -a ds9 commandement :

type -a ds9
ds9 is aliased to `/Applications/ds9.app/Contents/MacOS/ds9 -xpa no'
ds9 is /Users/evgenii/miniconda3/envs/iraf/bin/ds9

19voto

Nimesh Neema Points 44385

La commande est apparemment aliasée à un alias cassé. D'abord, vérifiez toutes les correspondances pour ds9 en PATH en exécutant la commande suivante :

type -a ds9

Conformément à votre question mise à jour, il ressort de la sortie de l'application type -a ds9 qu'un alias remplace la commande réelle.

Pour exécuter la commande réelle en ignorant l'alias, et sans spécifier le chemin d'accès complet, ajoutez au préalable un \ (barre oblique inversée) avant la commande. Ceci ignore tout alias défini par bash.

Si vous ne souhaitez pas ajouter la barre oblique inverse avant la commande à chaque fois, déterminez où l'alias est créé, et supprimez-le ou remplacez l'alias par la commande réelle.

4voto

Wildcard Points 874

Je vois que cela a été résolu pour le demandeur, mais pour les futurs lecteurs, je tiens à mentionner qu'il pourrait également être le cas que la commande était haché et ensuite le fichier a été retiré. (Voir help hash pour plus d'informations).

type -a commandname ne vous montrera pas ça, seulement type commandname volonté.

Dans ce cas, hash -d ds9 serait tout ce qui serait nécessaire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X