encontrou o binário ls usando whereis mas não consegue encontrar o porquê?

6

encontrou o binário ls usando o whereis mas não consegue encontrar o porquê? Como encontrar onde o binário está oculto?

Eu encontrei o binário "ls" usando "whereis" mas não consigo encontrar "ll"

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

Mas não é possível encontrar ll:

$ whereis ll
ll:
    
por Ashish Karpe 05.11.2015 / 17:12

3 respostas

14

ll não é um binário, mas um alias do comando ls -alF .

Verifique o arquivo .bashrc :

$ alias ll
alias ll='ls -alF'
    
por hg8 05.11.2015 / 17:14
7

Como anotado por kos nos comentários, você deve usar o comando bash type incorporado que, ao contrário de whereis , também está ciente dos aliases e dos built-ins do shell:

$ type ll ls cd
ll is aliased to 'ls -alF'
ls is hashed (/bin/ls)
cd is a shell builtin

(Para o significado de "hash", veja esta questão no unix. SE .

    
por Ilmari Karonen 06.11.2015 / 01:19
6

Muitos usuários gostam de atalhos e isso é o que é um alias, uma opção de atalho para os usuários.

Os scripts não devem usar atalhos, isso não é um design portátil, como você descobriu, esses comandos de alias não são definidos de forma consistente.

A resposta mais fácil para atender sua necessidade, assumindo que o uso de 'll' será repetido:

Dentro do script, defina o alias ll = 'ls -l', antes de referenciar o comando, então o uso de 'll' funcionará ao longo deste script.

#!/bin/bash
alias  ll='ls -alF'
... (rest of the script)

Resposta melhor: melhor usar o comando completo no script, fornece documentação. Nunca use um alias em um script que os outros tenham que usar.

    
por webmaster LinuxCourses 05.11.2015 / 17:34