Una pregunta muy antigua, lo sé, pero al buscar una solución, es posible que haya encontrado una mejor respuesta.
El principal problema con el uso de "buscar" es que depende de un conjunto de atributos ejecutable, incluso si este atributo está configurado para un archivo no ejecutable.
MacOS viene con una pequeña y práctica herramienta de línea de comandos " file
", que muestra información del archivo, por ejemplo:
$> file *
Distribution: directory
SomeFile.icns: Mac OS X icon, 3272878 bytes, "ic09" type
MyPicture.png: PNG image data, 1024 x 1024, 8-bit/color RGBA, non-interlaced
NSHelpers.pas: Algol 68 source text, ASCII text
myProgram: Mach-O 64-bit executable x86_64
Como puede ver, 'MyProgram' es un ejecutable, y muy bien indicado como tal. Dado que los ejecutables antiguos de 32 bits también tendrán la frase "ejecutable", lo siguiente debe enumerar todos los ejecutables verdaderos (binarios):
file * | grep "executable"
Espero que esto también sea útil para alguien que busque una respuesta a la misma pregunta.
Nota: file
no parece tener una función para recurrir a través de subdirectorios.
-L
lugar de-or -type l
provocar que lasstat
llamadas realizadasfind
devuelvan las estadísticas del archivo vinculado, no el enlace en sí.