O shell faz globbing, não find
. Quando você digita um comando que inclui um glob sem aspas como .b*
ou *.e*
, o shell expandirá isso para você. Isso acontece antes que find
o veja.
Você provavelmente tem arquivos como .bashrc
, .bash_history
etc. no diretório $HOME
. Portanto, quando executado a partir de $HOME
, seu comando se transformará em find ... -execdir ls -d .bashrc .bash_history ... \;
. Quando executado a partir de outros locais, o .b*
glob não corresponde a nada, portanto é transmitido. Isso ainda não funciona, pois é o shell que faz globbing, não find -exec
. Se você quisesse que o glob fosse expandido para o -exec
, você precisaria invocar um shell para fazer isso:
find ... -execdir sh -c 'echo globs: *' \;