Tente:
stat --printf="'%n' is a %F\n" $(dpkg -L grep)
Se você quisesse mostrar somente diretórios, você poderia fazer:
stat --printf="'%n' is a %F\n" $(dpkg -L grep) | grep ' is a directory$'
ou
for f in $(dpkg -L grep)
do
operms=$(stat --format='0%a' "$f")
if [ $(( $operms & 0111 )) -ne 0 ]
then
echo "$f: executable";
fi
done
As possibilidades são infinitas!
Eu acho que as duas primeiras formas são geralmente mais desejáveis porque elas só iniciam dois processos; no entanto, o loop for
inicia um processo stat
para cada arquivo.
Veja a página stat
man na seção 1 do manual para todos os atributos que você pode acessar desta maneira.
Obrigado a @ Jeff-Schaller por mencionar stat
.