Encuentra todos los files ejecutables dentro de una carpeta en la terminal

Tengo una carpeta myfolder que contiene una gran jerarquía de files / carpetas.
¿Cómo encontrar todos los files ejecutables dentro de esta carpeta?

En Ubuntu esto funciona: find . -executable -type f find . -executable -type f

  • ¿Por qué dsenableroot NO funcionaría en un 10.7.5 OSX Server?
  • ¿Puedo canalizar la salida de un command al cursor actual?
  • ¿Cómo ver notifications cuando se ejecuta a pantalla completa?
  • Usuario extraño en mi pantalla de inicio de session "marioneta"
  • ¿Cómo puedo cambiar la image de background de la count Invitada?
  • ¿Qué es una alternativa a un file BAT en Mac?
  • Pero Mac OS X Mavericks (que también usa bash ) no lo consigue:

     find: -executable: unknown primary or operator 

  • ¿Dónde almacena iTerm las preferences del usuario?
  • I-Beam inserción curson se pierde ocasionalmente
  • ¿Por qué la resolución de mi nombre de host tarda tanto?
  • ¿Es posible cargar directorys individuales en iCloud? Desencadenado desde el buscador de Mac?
  • Comando de installation de Xcode a través del terminal OS X
  • App Store sigue empujando las mismas actualizaciones
  • 3 Solutions collect form web for “Encuentra todos los files ejecutables dentro de una carpeta en la terminal”

    Esto encontrará todos los files (no los enlaces simbólicos) con el bit ejecutable establecido:

     find . -perm +111 -type f 

    Esto también encontrará enlaces simbólicos (que a menudo son igualmente importantes)

     find . -perm +111 -type f -or -type l 

    Así es como funciona el command si no es obvio:

    • find es obviamente el progtwig de búsqueda (:
    • . se refiere al directory para comenzar a search en ( . = directory actual)
    • -perm +111 = con cualquiera de los bits ejecutables establecidos ( + significa "cualquiera de estos bits", 111 es el octal para el bit ejecutable en el propietario, grupo y cualquier persona)
    • -type f significa que el tipo es un file
    • -or boolean O
    • -type l significa que el tipo es un enlace simbólico

    No pude hacer que la respuesta de Ian funcionara (10.6.8), pero a continuación obtuve los resultados esperados:

     find . -type f -perm +0111 -print 

    editar actualización

    ¡Esto parece funcionar también!

     find . -type f -perm +ugo+x -print 

    Supongo que la "x" no tiene sentido sin el usuario / grupo / otros especificadores.

    Desde la página del manual para encontrar en OS X :

      -perm [-|+]mode The mode may be either symbolic (see chmod(1)) or an octal number. If the mode is symbolic, a starting value of zero is assumed and the mode sets or clears permissions without regard to the process' file mode creation mask. If the mode is octal, only bits 07777 (S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO) of the file's mode bits participate in the comparison. If the mode is preceded by a dash (``-''), this primary evaluates to true if at least all of the bits in the mode are set in the file's mode bits. If the mode is preceded by a plus (``+''), this primary evaluates to true if any of the bits in the mode are set in the file's mode bits. Otherwise, this primary evaluates to true if the bits in the mode exactly match the file's mode bits. Note, the first character of a symbolic mode may not be a dash (``-''). 

    Así que tú necesitas:

     find . -type f -perm +0111 -print 

    Recuerde que OS X está basado en BSD , no en Linux, por lo que los commands Gnu que está acostumbrado en las distribuciones de Linux (de los cuales find es uno de ellos) no son necesariamente los mismos que en OS X. Esto no es así. t una diferencia de shell, es una diferencia de herramientas de sistema operativo / sistema operativo.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).