Search code examples
bashunixterminalfindfind-util

Search for executable files using find command


What type of parameter/flag can I use with the Unix find command so that I search executables?


Solution

  • On GNU versions of find you can use -executable:

    find . -type f -executable -print
    

    For BSD (and MacOS) versions of find, you can use -perm with + and an octal mask:

    find . -type f -perm +111 -print
    

    In this context "+" means "any of these bits are set" and 111 is the execute bits.

    Note that this is not identical to the -executable predicate in GNU find. In particular, -executable tests that the file can be executed by the current user, while -perm +111 just tests if any execute permissions are set.

    Older versions of GNU find also support the -perm +111 syntax, but as of 4.5.12 this syntax is no longer supported. Instead, you can use -perm /111 to get this behavior.