Si absolutamente debe usar ls y grep, esto funciona:
ls -Fla | grep '^\S*x\S*'
Coincide con líneas donde la primera palabra (sin espacios en blanco) contiene al menos una 'x'.
Find es la herramienta perfecta para esto. Esto encuentra todos los archivos (-tipo f) que son ejecutables:
find . -type f -executable
Si no desea que enumere recursivamente todos los ejecutables, use max depth:
find . -maxdepth 1 -type f -executable
¿Necesitas usar ls? Puedes usar find para hacer lo mismo:
find . -maxdepth 1 -perm -111 -type f
devolverá todos los archivos ejecutables en el directorio actual. Elimina el indicador -max depth para recorrer todos los directorios secundarios.
Podría probar esta terrible idea, pero podría coincidir con archivos que contienen cadenas que parecen permisos.
ls -lsa | grep -E "[d\-](([rw\-]{2})x){1,3}"
¿Quizás con prueba -x?
for f in $(\ls) ; do test -x $f && echo $f ; done
El \ on ls omitirá los alias de shell.
for i in `ls -l | awk '{ if ( $1 ~ /x/ ) {print $NF}}'`; do echo `pwd`/$i; done
Esto proporciona rutas absolutas a los ejecutables.