echo *, não consegue descobrir o que faz

1

Eu tenho um livro que diz que a saída do comando echo * é a linha que segue abaixo. Não consigo descobrir por que isso gera isso. Por favor ajude.

$ echo *
local.cshrc local.login local.profile
    
por AlexN 18.03.2017 / 11:51

2 respostas

4

* é um caractere especial de shell (correspondência de glob) que corresponde aos nomes de arquivos e diretórios no diretório atual.

$ ls *

Isso listará todos os arquivos e diretórios no diretório atual. Então, no seu caso, '*' retorna e 'echo' os imprime no console. Tente isto para confirmar:

$ x=*
$ echo $x 
    
por 18.03.2017 / 12:07
1

Você está usando um curinga - * que é usado com globbing e file-expansion .

O link mencionado acima descreve isso ainda mais:

Standard wildcards (also known as globbing patterns) are used by various command-line utilities to work with multiple files. For more information on standard wildcards (globbing patterns) refer to the manual page by typing:

e

* (asterisk) this can represent any number of characters (including zero, in other words, zero or more characters). If you specified a "cd*" it would use "cda", "cdrom", "cdrecord" and anything that starts with “cd” also including “cd” itself. "m*l" could by mill, mull, ml, and anything that starts with an m and ends with an l.

    
por 18.03.2017 / 12:25