Почему 'echo *' дает результаты, отличные от 'ls *'?

Например, если вы находитесь в домашнем каталоге и введите ls *, у вас будут все каталоги в списке, а под именем указанного каталога - файлы, которые он содержит. С другой стороны, если вы печатаете echo * команда перечислит только каталоги, а не каталоги и контент, который у них есть. Это почему?

1 ответ

В обоих случаях * расширяется оболочкой.

echo чем просто печатает параметры, полученные в результате расширения.

ls проверяет каждый параметр, является ли он каталогом, и перечисляет его содержимое, если оно есть.

Другие вопросы по тегам