Бесконечный вывод при вводе * в bash

Почему при вводе в bash:

user@user:~/Desktop/Library$ *

Возникает бесконечный вывод непонятных символов? Cодержимое каталога:

user@user:~/Desktop/Library$ ls
cat  D.pdf  Linux.pdf  VBash.pdf

После того как заменил .pdf файлы на пустые текстовые файлы с такими же названиями это прошло:

user@user:~/Desktop/Library$ *
user@user:~/Desktop/Library$ ls
cat  D.pdf  Linux.pdf  VBash.pdf

Ответы (1 шт):

Автор решения: Vadik

У вас в текущей директории находятся 4 файла: cat, D.pdf, Linux.pdf и VBash.pdf.

Символ * в языке bash это так называемый wildcard (шаблон поиска), который соответствует всем файлам в текущем каталоге.

Если же ввести в командную строку просто *, то такой wildcard развернется в список всех файлов в вашей директории, но в то же время это будет валидной командой для bash:

cat D.pdf Linux.pdf VBash.pdf

Поэтому на экране вы увидите содержимое трех pdf файлов. Если pdf-файл содержит в себе бинарные данные, то скорей всего на экране вы увидите большое количество "непонятных" символов.

→ Ссылка