Sim, você pode executar o comando find sem um shell - você precisaria de algum programa para iniciá-lo e de algum programa para exibir sua saída. Muitas vezes, você está usando recursos do shell, e esse comando precisará de um shell para interpretar a intenção.
por exemplo, tubulação, redirecionamento e globbing é um recurso do shell e precisará de um shell para interpretar. "find. -name myfile" não usa nenhum recurso de um shell e pode ser executado sem um shell. "find. -name myfile | sort> output" usa tanto o canal quanto o redirecionamento e você precisa de um shell para interpretar isso.
Quanto a escapar de xy *, há pouca diferença se for a entrada a ser encontrada ou a saída de uma redição, o shell a expandirá de qualquer maneira.
Se houver um arquivo chamado xyz no diretório atual
encontrar . -name xy * será executado como localizar. -name xyz, que provavelmente não é o que você deseja.
Se você encontrar. -name xy * e não há arquivo correspondente a xy * no diretório atual, ele será executado como localizador. -name xy *.
Da mesma forma, se não houver arquivo correspondente a xy * no diretório atual, ls> xy * criará um arquivo chamado xy *. Se houver um arquivo correspondente - digamos xyz, isso significa ls> xyz. Se houver vários arquivos correspondentes a xy *, ls> xy * falhará.
Leia mais http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html