ll
não é um binário, mas um alias do comando ls -alF
.
Verifique o arquivo .bashrc
:
$ alias ll
alias ll='ls -alF'
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:
ll
não é um binário, mas um alias do comando ls -alF
.
Verifique o arquivo .bashrc
:
$ alias ll
alias ll='ls -alF'
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 .
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.
Tags command-line ls