Perché il comando "quale" fornisce risultati duplicati?


Risposte:


9

Controlla il tuo percorso. Non è così difficile finire con i duplicati. Esempio:

»echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:
»which -a bash
/bin/bash
/usr/bin/bash

Questo perché my / bin è un link simbolico a / usr / bin. Adesso:

»export PATH=$PATH:/usr/bin
»echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/bin
»which -a bash
/bin/bash
/usr/bin/bash
/usr/bin/bash

Dato che / usr / bin è ora nel mio $ PATH due volte, which -atrova lo stesso bash due volte.


2
Per espandere: L'opzione -a riporta TUTTE le partite nel PERCORSO. Ecco a cosa serve. Se, come notato, $ PATH fa riferimento allo stesso posto più di una volta, o lo stesso eseguibile si trova in più di un posto, verrà mostrato più volte con -a (ma non quando si omette quell'opzione).
SuperMagic

2

Come dice il suggerimento, e citando dalla pagina del manuale, "Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same algorithm as bash(1)."Come per l' -aopzione, elenca tutti gli eseguibili con quel nome che si trovano in $ PATH.


1

Dai un'occhiata al tuo percorso:

echo $PATH

Ci sono voci duplicate nel tuo percorso (o ruby ​​viene installato più volte in posizioni diverse).


1

Provare

whereis -b ruby

Se stai ottenendo lo stesso output, il problema è nel tuo PERCORSO.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.