Oui, vous pouvez exécuter la commande find sans shell - vous auriez besoin d'un programme pour le démarrer, et vous auriez besoin d'un programme pour afficher sa sortie. Souvent, vous utilisez des fonctionnalités du shell, et cette commande aura besoin d'un shell pour interpréter l'intention.
par exemple, la tuyauterie, la redirection et la globalisation sont une caractéristique du shell, et auront besoin d'un shell pour interpréter. "find. -name myfile" n'utilise aucune fonction d'un shell, et pourrait être exécuté sans shell. "find. -name myfile | sort> output" utilise à la fois la tuyauterie et la redirection et vous avez besoin d'un shell pour interpréter cela.
Quant à échapper à xy *, il y a peu de différence si c'est l'entrée à trouver ou la sortie d'une rediction, le shell va l'étendre de toute façon.
S'il y a un fichier nommé xyz dans le répertoire courant
trouver . -name xy * s'exécutera en fait comme find. -nom xyz, ce qui n'est probablement pas ce que vous voulez.
Si vous trouvez. -name xy * et il n'y a pas de fichier correspondant à xy * dans le répertoire courant, il fonctionnera comme find. -nom xy *.
De même, s'il n'y a pas de fichier correspondant à xy * dans le répertoire courant, ls> xy * créera un fichier nommé xy *. S'il y a un fichier correspondant - disons xyz, cela signifie ls> xyz. S'il y a plusieurs fichiers correspondant à xy *, alors ls> xy * échouera.
En savoir plus http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html