Por exemplo, eu git
instalei no meu sistema. Mas não me lembro onde o instalei, então qual comando é adequado para descobrir isso?
Por exemplo, eu git
instalei no meu sistema. Mas não me lembro onde o instalei, então qual comando é adequado para descobrir isso?
Respostas:
Se estiver no seu caminho, você poderá executar type git
ou which git
. O which
comando teve problemas para obter o caminho adequado (confusão entre o ambiente e os arquivos de ponto). Pois type
, você pode obter apenas o caminho com o -p
argumento.
Se não estiver no seu caminho, é melhor procurá-lo com locate -b git
Ele encontrará qualquer coisa chamada 'git'. Será uma lista longa, portanto pode ser bom qualificá-la locate -b git | fgrep -w bin
.
locate
sem parar (é muito rápido), mas, para quem não sabe, locate
é tão atualizado quanto a atualização mais recente do banco de dados, que é executada automaticamente diariamente no meu Ubuntu. O comando refresh é sudo updatedb
... Também locate
possui capacidade de regex locate -br "^git$"
interna , portanto, comandos como este funcionam: ... -b` significa restringir a pesquisa apenas ao nome da base ... ou sem o -b
, ele pesquisa o nome completo do caminho. , ele pesquisa apenas os caminhos que você configurou para pesquisar. não há controle de linha de comando disso além dos filtros regex.
type
é um shell embutido que me diz aliases e tal, e which
é um programa externo que me mostra o caminho para um executável ... embora, se houver um embutido no diretório maneira que executável não será chamado.
which
são que ele não sabe sobre os recursos e funções do shell (o que é relevante quando você está se perguntando o que digitar o comando fará), e usa algo diferente $PATH
em alguns sistemas.
A maneira padrão POSIX de fazer isso é command -v git
. Todos os sistemas do tipo UNIX devem suportar isso.
whereis git
e você obtém o caminho para o comando.
isto é, apenas se o git estiver na sua variável PATH, caso você não o tenha instalado através do gerenciador de pacotes, é mais complexo e você deve usar os comandos find
ou locate
.
which
também é incentivado.
As outras respostas aqui parece ser em grande parte voltado para versões modernos de Linux, por isso, se acontecer de você usar git
em um sistema operacional que não tem locate
, whereis
, which
, ou apropos
(como Solaris, HPUX, etc), então há sempre o velho standby find
.
find / -name git
Em algumas versões mais antigas dos sistemas listados acima, você pode precisar de uma -print
opção fornecida find
.
find / -name git -print
E se você usar locate
, certifique-se de executar updatedb
periodicamente. ( locate.updatedb
em alguns derivados do BSD)
type
. :) Isso definitivamente está no repertório!
find
faz uma pesquisa completa e aprofundada do sistema de arquivos a partir de onde você o enraizar. Então find / -name git
, atravessará todo o seu sistema. Se você sabe que o programa está no seu caminho, normalmente pode fazê-lo IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, embora os sistemas de arquivos Unix sejam permissivos o suficiente para que isso possa ocorrer de várias maneiras se houver caracteres estranhos no seu PATH
.
PATH
, a coisa correta (com as mesmas ressalvas de antes) é IFS=":"; for dir in $PATH; do find "$dir" -name git; done
. Além disso, para reiterar, essa resposta deve ser usada apenas por pessoas que não têm acesso a type
ou which
ou locate
, ou seja, quase ninguém. A resposta do @ Arcege está correta.
Para obter o caminho para o programa instalado, use whereis
ou which
. Se você esquecer o nome, você pode usar apropos
com um sinônimo ou descrição do seu utilitário, por exemplo, apropos "version control"
irá encontrar git
. A seguir, é claro, o whatis
comando para resumir brevemente a função de um programa. No entanto, isso não se aplica a todos os programas e funções em seu sistema. Tente por exemplo whatis "the meaning of life, universe and everything"
.
which
comando" na verdade :)