Este funciona sem dependências externas (somente builtins de shell) e também trabalha com ash busybox.
Às vezes você não consegue lembrar como soletrá-lo exatamente, para aqueles de nós que só precisam encontrar uma correspondência aproximada, existe essa função para adicionar ao bashrc:
find_bin(){
for x in ${PATH//://*${1}* }*${1}*; do
[ -f "$x" ] && echo $x
done
}
find_bin grep irá listar todos os binários em $ PATH com grep no nome junto com o caminho {grep, egrep, fgrep, bugreport, ...}
isso pode aceitar a seguinte sintaxe:
- a * z - com az
- a? z - com um < 1 caractere > z
- a [0-9] z - com az
- a [a-z] z - com az
- a [A-Z] z - com az
- a * {a, z} * z - com a .... mesmo que um [az] z
se você ocasionalmente quiser que apenas coincida com a palavra inteira e não relate egrep, fgrep ou bugreport ao digitar grep, você poderá remover os asteriscos e adicioná-los novamente na linha de comando somente onde desejar
find_bin(){
for x in ${PATH//://${1} }${1}; do
[ -f "$x" ] && echo $x
done
}
para esta sintaxe extra é necessária para combinar os começos e finais
- * grep - corresponderá aos comandos terminados em gre (encontrará grep, egrep e fgrep, mas não reportará erros)
- grep - corresponderá apenas à string exata grep
- grep * - corresponderá aos comandos que começam com grep
- todos os padrões acima se aplicam também