Sí, puede ejecutar el comando find sin un shell; sin embargo, necesitaría algún programa para iniciarlo y necesitaría algún programa para mostrar su salida. Muchas veces, estás usando características del shell, y ese comando necesitará un shell para interpretar la intención.
por ejemplo, la tubería, la redirección y el globbing es una característica del shell, y necesitará un shell para interpretar. "find. -name myfile" no utiliza ninguna característica de un shell, y podría ejecutarse sin un shell. "find. -name myfile | sort> output" usa tuberías y redireccionamiento y necesita un shell para interpretar eso.
En cuanto a escapar de xy *, hay poca diferencia si es la entrada para encontrar o la salida de una redicción, el shell lo expandirá de cualquier manera.
Si hay un archivo llamado xyz en el directorio actual
encontrar . -name xy * realmente se ejecutará como find. -name xyz, que probablemente no sea lo que quieres.
Si lo encuentras. -name xy * y no hay ningún archivo que coincida con xy * en el directorio actual, se ejecutará como find. -nombre xy *.
Del mismo modo, si no hay un archivo que coincida con xy * en el directorio actual, ls> xy * creará un archivo llamado xy *. Si hay una coincidencia de archivo, digamos xyz, significará ls> xyz. Si hay varios archivos que coinciden con xy *, ls> xy * fallará.
Leer más http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html