Por que meu PHP WHIS tem um valor diferente de WHEREIS PHP?

2

que mostra minha instalação local do php

e onde o php mostra a instalação global do php (env compartilhado)

    
por qodeninja 28.09.2009 / 01:54

1 resposta

4

Os dois programas têm idéias diferentes sobre onde procurar. Eles também podem ser implementados de maneiras diferentes em sistemas diferentes. No meu, whereis é um executável binário e which é um script de shell Bourne.

Se você quiser outras opiniões sobre onde algo está, tente estas:

type -a php

e

locate php

Da página whereis man :

whereis has a hard-coded path, so may not always find what you’re looking for.

Da página which man :

which returns the pathnames of the files which would be executed in the current environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this by searching the PATH for executable files matching the names of the arguments.

Portanto, whereis pesquisa um caminho codificado, which usa a variável $ PATH, locate usa um banco de dados do sistema de arquivos inteiro (por padrão) e type , que é um Bash incorporado, procura no $ PATH, nos builtins, nos aliases e nas definições de funções.

Eu uso type e locate principalmente e só muito raramente uso os outros dois, pois eles são relativamente limitados em capacidade.

Ah, e para responder a sua pergunta, which , porque ele pesquisa $ PATH, é mais provável que você mostre o local que será executado se você digitar o comando " php ". E type provavelmente será ainda melhor nos casos em que você tiver apelidos ou funções com o mesmo nome, uma vez que eles são executados preferencialmente no local $ PATH. Note que tudo isso é dependente do sistema e também depende do shell que você está usando (suponho que seja Bash). No meu sistema, usando Bash, a ordem é funções, aliases, builtins e $ PATH (na ordem em que os diretórios são listados). Compare a saída desses vários comandos para:

echo $PATH
    
por 28.09.2009 / 02:49

Tags