Ich bin mir einer sehr alten Frage bewusst, aber auf der Suche nach einer Lösung habe ich vielleicht eine bessere Antwort gefunden.
Das Hauptproblem bei der Verwendung von "find" besteht darin, dass ein Attribut als ausführbar festgelegt wird, auch wenn dieses Attribut für eine nicht ausführbare Datei festgelegt ist.
Im Lieferumfang von MacOS ist ein kleines Befehlszeilentool " file
" enthalten, mit dem Dateiinformationen angezeigt werden, beispielsweise:
$> 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
Wie Sie sehen können, ist 'MyProgram' eine ausführbare Datei und wird als solche angezeigt. Da alte ausführbare 32-Bit-Dateien auch den Ausdruck "ausführbar" enthalten, sollten im Folgenden alle ausführbaren Dateien (Binärdateien) aufgeführt sein:
file * | grep "executable"
Hoffe, dass dies auch für jemanden nützlich ist, der nach einer Antwort auf dieselbe Frage sucht.
Hinweis: file
Scheint keine Funktion zu haben, um durch Unterverzeichnisse zu rekursieren.
-L
anstelle von-or -type l
veranlassen, dassstat
Aufrufe vonfind
die Statistiken der verknüpften Datei zurückgeben, nicht die Verknüpfung selbst.