Wiem, że to bardzo stare pytanie, ale szukając rozwiązania, mogłem znaleźć lepszą odpowiedź.
Główny problem z użyciem „znajdź” polega na tym, że polega on na zestawie atrybutów wykonywalnym, nawet jeśli ten atrybut jest ustawiony dla pliku niewykonywalnego.
MacOS jest wyposażony w poręczne małe narzędzie wiersza polecenia „ file
”, które wyświetla informacje o pliku, na przykład:
$> 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
Jak widać, „MyProgram” jest plikiem wykonywalnym i jako taki jest ładnie oznaczony. Ponieważ stare 32-bitowe pliki wykonywalne również będą miały w tym wyrażeniu „plik wykonywalny”, poniższe elementy powinny zawierać wszystkie prawdziwe pliki wykonywalne (pliki binarne):
file * | grep "executable"
Mam nadzieję, że przyda się to również osobom szukającym odpowiedzi na to samo pytanie.
Uwaga: file
wydaje się, że nie ma funkcji rekurencji w podkatalogach.
-L
zamiast-or -type l
powodować żadnychstat
połączeń wykonanych przezfind
zwrócić statystyk pliku związana, a nie sam związek.