Une très vieille question, je le sais, mais à la recherche d'une solution, j'ai peut-être trouvé une meilleure réponse.
Le problème principal avec l'utilisation de "find" est qu'il repose sur un attribut défini sur exécutable, même si cet attribut est défini pour un fichier non exécutable.
MacOS est livré avec un petit outil de ligne de commande pratique " file
", qui affiche des informations sur les fichiers, par exemple:
$> 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
Comme vous pouvez le voir, «MyProgram» est un exécutable, et bien indiqué comme tel. Étant donné que les anciens exécutables 32 bits auront également la phrase "exécutable", ce qui suit devrait répertorier tous les vrais exécutables (binaires):
file * | grep "executable"
J'espère que cela sera utile à quelqu'un qui cherche également une réponse à la même question.
Remarque: file
ne semble pas avoir de fonction de récurrence via les sous-répertoires.
-L
au lieu de-or -type l
pour provoquer tous lesstat
appels effectués parfind
pour renvoyer les statistiques du fichier lié, et non le lien lui-même.