“qual” comando não está mostrando nada na saída padrão

0

Quando executo o comando which , ele não mostra nada.

Eu corri todos estes e nenhum deu saída.

$ which /tool/
$ which RED*.pdf
$ which anime
$ which -a anime
$ info which    
$ which -a
$ which -a Downloads
$ which Downloads
$ which doc    
$ which media
$ which /media
$ which    

$ su -
# which
# which doc
# logout

$ which --help
Illegal option --
Usage: fusrfbinfwhich [-a] args
$ which info
/usr/bin/info
$ which help
$ which cd
$ info which
$ which -a info
/usr/bin/info
$ which -a
$ which -a list.txt
    
por Manish Bharti 31.01.2016 / 17:04

4 respostas

4

De man which :

NAME
       which - locate a command

SYNOPSIS
       which [-a] filename ...

DESCRIPTION
       which returns the pathnames of the files (or links) 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. It does not follow
       symbolic links.

Eu não esperaria que which desse uma saída - como diz a página man , você precisa de um nome de arquivo que seja um comando.

Tente executar which ls .

Pode ser que você queira saber onde um comando é - para o que você precisa onde está.

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
    
por Tim 31.01.2016 / 17:15
2

Um bom começo seria:

man which

NAME
   which - shows the full path of (shell) commands.

Nenhum dos exemplos fornecidos na captura de tela é um comando que pode retornar um caminho. Por exemplo. cd é uma compilação no comando.

Eu não entendo o que você espera receber com

which /tool/

etc.

, mas parece que não é a ferramenta para alcançar o resultado esperado.

    
por Bruni 31.01.2016 / 17:12
0

Existem alguns comandos semelhantes que possuem métodos e saídas drasticamente diferentes:

/usr/bin/which Localize o caminho binário de um executável.

$ which ssh /usr/bin/ssh

/usr/bin/whereis Pesquise locais padrão do Linux para origem, binário e manuais para o nome especificado.

$ whereis ssh /usr/bin/ssh

/usr/bin/find Pesquise o caminho atual ou especificado recursivamente para corresponder sequências de caracteres.

(cd /usr/bin && find . ssh) ... ./things_it_checked ... ssh

/usr/bin/grep Pesquisar texto / arquivos / caminhos para uma string.

(cd /usr/bin && ls * | grep ssh) ssh ssh-add ssh-agent ssh-keygen ssh-keyscan

    
por spyderdyne 19.05.2016 / 17:40
0

No meu caso, myscript.sh estava funcionando bem, comprar which (nem whereis ) não estava retornando nenhuma saída:

$ which myscript.sh
$ 

Eu corrijo a alteração do ~ (til) para $HOME :

export PATH="$PATH:$HOME/myprgms

Agora também whereis -l mostra minha pasta adicionada.

Veja esta resposta para saber mais sobre a diferença entre ~ e $HOME .

    
por Pablo Bianchi 25.09.2017 / 02:49