Да, вы можете запустить команду find без оболочки - вам понадобится какая-то программа для ее запуска, и вам понадобится какая-нибудь программа для отображения ее вывода. Часто вы используете функции оболочки, и эта команда будет нуждаться в оболочке для интерпретации намерения.
например, трубопровод, перенаправление и глобализация - это особенность оболочки, и для ее интерпретации потребуется оболочка. «find. -name myfile» не использует никаких функций оболочки и может быть запущен без оболочки. «find. -name myfile | sort> output» использует как конвейер, так и перенаправление, и вам нужна оболочка для интерпретации этого.
Что касается экранирования xy *, то есть небольшая разница, если это ввод или вывод повторного текста, оболочка будет расширять его в любом случае.
Если в текущем каталоге есть файл с именем xyz
найти . -name xy * на самом деле будет работать как find. Имя XYZ, что, вероятно, не то, что вы хотите.
Если вы найдете. -name xy * и в текущей директории нет файла, соответствующего xy *, он будет работать как find. имя xy *.
Аналогично, если в текущем каталоге нет файла, соответствующего xy *, ls> xy * создаст файл с именем xy *. Если существует один файл, соответствующий - скажем, xyz, это будет означать ls> xyz. Если есть несколько файлов, соответствующих xy *, то ls> xy * завершится ошибкой.
Читать дальше http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html