'tipo -a ls' produz três endereços ls idênticos

0

Quando eu verifico o comando ls , existe uma série deles:

$ type -a ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /bin/ls

Se os visualizar da pasta

$ ls /usr/local/opt/coreutils/libexec/gnubin/ | grep "ls"
false
ls

É um único comando ls em vez de três.

Qual é o motivo, digite -a produzir três% idênticos/usr/local/opt/coreutils/libexec/gnubin/ls?

    
por JawSaw 27.10.2018 / 08:08

1 resposta

1

/usr/local/opt/coreutils/libexec/gnubin aparece em PATH mais de uma vez, então type -a analisa três vezes e informa que encontrou ls para cada uma delas.

Você pode inspecionar seu PATH ( echo "$PATH" ) para ver isso ou manipulá-lo para replicar e modificar o comportamento:

PATH=/bin:/bin type -a ls
PATH=/usr/local/opt/coreutils/libexec/gnubin:/bin type -a ls

Em algum lugar na configuração do seu ambiente, a variável está sendo definida mais de uma vez, possivelmente por ter executado um script automatizado que adicionou uma linha extra PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH algumas vezes.

    
por 27.10.2018 / 08:47

Tags