Бесконечный вывод при вводе * в 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 шт):
У вас в текущей директории находятся 4 файла: cat, D.pdf, Linux.pdf и VBash.pdf.
Символ * в языке bash это так называемый wildcard (шаблон поиска), который соответствует всем файлам в текущем каталоге.
Если же ввести в командную строку просто *, то такой wildcard развернется в список всех файлов в вашей директории, но в то же время это будет валидной командой для bash:
cat D.pdf Linux.pdf VBash.pdf
Поэтому на экране вы увидите содержимое трех pdf файлов. Если pdf-файл содержит в себе бинарные данные, то скорей всего на экране вы увидите большое количество "непонятных" символов.