Por exemplo, se passado ls
como entrada, ele deve me dizer que /bin/ls
será executado se for executado ls
na linha de comando.
fonte
Por exemplo, se passado ls
como entrada, ele deve me dizer que /bin/ls
será executado se for executado ls
na linha de comando.
Somente um shell embutido dirá a alguém corretamente o que o shell fará por um determinado nome de comando, uma vez que somente os embutidos podem saber completamente sobre aliases, funções do shell, outros embutidos e assim por diante. Lembre-se: nem todos os comandos correspondem aos arquivos executáveis em primeiro lugar.
Para o shell Bourne Again bash
, o built-in é o type
comando:
$ type '['
[ is a shell builtin
Para a concha de peixefish
type
,, O builtin funciona da mesma forma que o bash. Para obter apenas o caminho de um executável, use command -v
:
$ type cat
cat is /bin/cat
$ command -v cat
/bin/cat
Para a Shell Korn, ksh
, o built-in é o whence
comando - com type
criado inicialmente como um apelido comum para whence -v
e do command
built-in com a -v
opção equivalente a whence
:
$ whence -v ls
ls is a tracked alias for /bin/ls
Para a Z Shell, zsh
, o built-in é o whence
comando, com o command
built-in com a -v
opção equivalente ao whence
e as built-ins type
, which
e where
equivalente a whence
com as opções -v
, -c
e, -ca
respectivamente.
$ whence ls
/bin/ls
Para a Shell TC, tcsh
, o built-in é o which
comando - para não ser confundido com qualquer comando externo por esse nome:
> which ls
ls: aliased to ls-F
> which \ls
/bin/ls
type
também está embutido no zsh?which-2.19-6.el6.x86_64
) coloca um arquivo de inicialização/etc/profile.d/which2.sh
. Isso é lido por shells não-csh, incluindo zsh. Aliaswhich
para si mesmo. Portanto, para usuários do zsh, em particular, ele substitui as quebras internaswhich
.Você pode usar
which
para isso:Ele funciona pesquisando os
PATH
arquivos executáveis que correspondem aos nomes dos argumentos. Observe que isto não funciona com aliases de shell:type
, no entanto, funciona:fonte
which
não é necessariamente suficiente por si só. Ele retorna apenas o primeiro nome encontrado em $ PATH ... Esse nome pode ser um link simbólico, e não o executável final de cadeia .which
se não (necessariamente) voltar o arquivo executável. Ele retorna o primeiro nome de arquivo correspondente encontrado em $ PATH (ou vários arquivos nomeados semelhantes ao usarwhich -a
) ... O executável real pode estar a vários links de distância.which locate
/usr/bin/locate
`
file $(which locate)
/usr/bin/locate: symbolic link to /etc/alternatives/locate'
O comando que encontra o real executável é
readlink -e
,(em conjugação com o
which
)readlink -e $(which locate)
/usr/bin/mlocate
Para ver todos os links intermediários :
fonte
Podes tentar:
Isso me dá:
fonte