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.

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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.