Ja, Sie können den Befehl find ohne Shell ausführen. Sie benötigen jedoch ein Programm, um ihn zu starten, und ein Programm, um die Ausgabe anzuzeigen. Oft verwenden Sie Funktionen der Shell, und dieser Befehl benötigt eine Shell, um die Absicht zu interpretieren.
ZB Piping, Redirection und Globbing sind ein Merkmal der Shell und benötigen eine Shell zur Interpretation. "find. -name myfile" verwendet keine Funktion einer Shell und kann ohne Shell ausgeführt werden. "find. -name myfile | sort> output" verwendet sowohl Piping als auch Redirection und Sie benötigen eine Shell, um dies zu interpretieren.
Wenn Sie xy * entkommen, gibt es kaum einen Unterschied, ob es sich um die zu findende Eingabe oder die Ausgabe einer Rediction handelt. Die Shell erweitert sie in beide Richtungen.
Wenn sich im aktuellen Verzeichnis eine Datei mit dem Namen xyz befindet
finden . -name xy * wird tatsächlich als find ausgeführt. -name xyz, was wahrscheinlich nicht das ist, was du willst.
Wenn Sie finden. -name xy * und es gibt keine Datei, die mit xy * im aktuellen Verzeichnis übereinstimmt. Es wird als find ausgeführt. -name xy *.
Wenn im aktuellen Verzeichnis keine mit xy * übereinstimmende Datei vorhanden ist, erstellt ls> xy * eine Datei mit dem Namen xy *. Wenn eine Datei übereinstimmt - sagen wir xyz - bedeutet dies ls> xyz. Wenn mehrere Dateien mit xy * übereinstimmen, schlägt ls> xy * fehl.
Lesen Sie mehr http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html