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.