Что происходит когда вводишь в терминал unix звездочку (*)?

Привет!

Кто объяснит нормально, или дайте ссылку где описано. Что происходит когда в linux`е вводишь команду (*).
Я так понял она берет все файлы подряд и выполняет их подряд. Там только названия файлов учитывается? Или как то содержимое тоже на что то влияет. Как все это работает?
  • Вопрос задан
  • 1643 просмотра
Пригласить эксперта
Ответы на вопрос 4
@abcd0x00
Если оболочка встречает символ *, то она воспринимает его как символ шаблона.
Если это символ шаблона, то она берёт символы вокруг него, составляя шаблон.
Когда шаблон составлен, она берёт все имена из текущей директории по порядку и сравнивает с этим шаблоном.
Все имена, которые совпали с шаблоном, вставляются через пробел вместо шаблона.
А потом всё это дело выполняется.

Это пример
[guest@localhost t]$ ls
[guest@localhost t]$ touch cat
[guest@localhost t]$ echo hello >file.txt
[guest@localhost t]$ ll
итого 4
-rw-rw-r--. 1 guest guest 0 дек 30 11:32 cat
-rw-rw-r--. 1 guest guest 6 дек 30 11:32 file.txt
[guest@localhost t]$ *
hello
[guest@localhost t]$
Ответ написан
Комментировать
Olej
@Olej
инженер, программист, преподаватель
Что происходит когда в linux`е вводишь команду (*).

Вообще то, в Linux нет такой команды, и никакие такие спецсимволы не допускаются в составе команды.
То, что вы говорите, относится к параметрам команды, да и то не ко всяким.
Различайте команду, параметры команды и опции командной строки... иначе вы сами себе понаделаете путаницы.
Ответ написан
@amatory10
да * заменяет полностью имя, например команда rm *.txt удалит все файлы с расширением .txt,
есть еще например ? который заменяет только один символ например ?ello т.е. удалятся все файлы у которых первый символ произвольный, а остальные соответственно ello.
Ответ написан
Комментировать
RiseOfDeath
@RiseOfDeath
Диванный эксперт.
Это обычный регэксп.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы