Por que um asterisco ou uma linha de asteriscos como um comando bash retorna “boost_1_69_0: comando não encontrado”?

Por que um asterisco ou uma linha de asteriscos como um comando bash retorna “boost_1_69_0: comando não encontrado”?

Estou um pouco confuso e divertido, mas acidentalmente pressionei meu teclado e digitei:

*******************************************

para o qual meu bash do Ubuntu 22 retornou:

me@pc:~$ *******************************************
boost_1_69_0: command not found

Tentei com várias quantidades *e o resultado é o mesmo.

Responder1

Veja ls -le você verá "boost_1_69_0" na lista como o primeiro arquivo ou diretório alfabético.

A quantidade de *'s não importa. bash vê os curingas e tenta executá-los para todo o conteúdo do seu diretório ativo e então descobre que não consegue entender isso.

Eu tenho "bin" como o primeiro e vai reclamar de "bin":

rinzwind@schijfwereld:~$ ls -l
total 8
drwxrwxr-x 2 rinzwind rinzwind 4096 apr 23 11:24 bin
drwx------ 5 rinzwind rinzwind 4096 apr 18 22:19 snap
rinzwind@schijfwereld:~$ *
Command 'bin' not found, did you mean:
  command 'tin' from deb tin (1:2.6.2-1build1)
  command 'ben' from deb ben (0.10.1ubuntu1)
  command 'bing' from deb bing (1.3.5-5)
  command 'bip' from deb bip (0.9.3-1)
  command 'win' from deb wily (0.13.42-1)
  command 'din' from deb din (56-1)
Try: sudo apt install <deb name>

Use set -xse quiser informações mais detalhadas sobre o que está acontecendo ( set +xpara reverter isso).

Ah, e isso se tornaria estranho se você tivesse feito:

./*

e coloque isso dentro de "1":

rinzwind@schijfwereld:/discworld/tmp$ cat 1
#!/bin/bash
rinzwind@schijfwereld:/discworld/tmp$ ./*
rinzwind@schijfwereld:/discworld/tmp$ 

e ele irá executá-lo;)

informação relacionada