Eu acho que o seu find faz entender -type d porque isso é exigido pelo POSIX . No entanto, a sintaxe que você usou:
find -type d
não é compatível com POSIX, portanto não é portável. A sintaxe portátil adequada é:
find path -type d
As versões do Linux de find assumirão ./ se você omitir path . No Mac find espera algo como este :
find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
Você deseja que -type faça parte de expression , mas seu find precisa de path ou -f path em seus argumentos de linha de comando. Antes de obter um, ele tenta interpretar outros argumentos como opções, portanto, seu -type é, de fato, -t -y -p -e ; não há nenhuma opção -t definida, portanto illegal option -- t .
(Compare esta resposta ).
A solução é simples: especifique path explicitamente. Equivalente em Mac do Linux find -type d é:
find ./ -type d
Observe que isso também funciona no Linux.