O que três pontos “./…” significam em invocações de linha de comando Go?

119

Se você executar os testes Golang no Travis CI, ele baixará todas as suas dependências com três pontos :

go get -d -v ./... && go build -v ./...

O que ./...indica ou se expande para lá? Eu fiz algumas pesquisas, mas não parece ser uma convenção do Unix.

Kevin burke
fonte

Respostas:

125

Do comando go help packages:

Um caminho de importação é um padrão se incluir um ou mais curingas "...", cada um dos quais pode corresponder a qualquer string, incluindo a string vazia e as strings contendo barras. Esse padrão se expande para todos os diretórios de pacotes encontrados nas árvores GOPATH com nomes que correspondem aos padrões. Como um caso especial, x / ... corresponde a x, bem como aos subdiretórios de x. Por exemplo, net / ... se expande para net e packages em seus subdiretórios.

Kevin burke
fonte
6
Portanto, é semelhante ao **curinga implementado por alguns shells.
Keith Thompson
6
LOL você respondeu sua própria pergunta. Isso é tão Kevin.
Darth Egregious
1
Espere, você recebe crédito por responder às suas próprias perguntas apenas 3 minutos depois de publicá-las ...? Você deveria ter dedicado mais 3 minutos antes de postar sua pergunta? Hmm ... bem, a resposta foi útil, então votei a favor de qualquer maneira. ;)
Subfuzão de
10
Muitas vezes eu faço isso porque acabo procurando pela mesma pergunta depois e este é o lugar mais fácil para encontrá-la novamente.
Kevin Burke
8
Acho que é perfeitamente normal responder às próprias perguntas, desde que as informações sejam úteis , e a diretriz incentiva isso também.
David Chen
45
go [command] ./...

Aqui ./diz para começar a partir da pasta atual, ...diz para descer recursivamente.

Por exemplo:

go list ...

Em qualquer pasta, lista todos os pacotes, incluindo os pacotes da biblioteca padrão, seguidos pelas bibliotecas externas em seu espaço de trabalho go.

Emdadul Sawon
fonte