O que significa “-” nos comandos do terminal?

23

Eu tenho visto muitos tutoriais que usam um -- após os comandos. Algo parecido com isto:

command -- 

O que isso significa -- ?

    
por Jibril 02.07.2016 / 18:16

2 respostas

45

O -- é usado para indicar o final das opções da linha de comando. Isso permite que você use argumentos começando com -- . Por exemplo, se você criar um arquivo chamado --foo :

$ > '--foo'
$ ls
--foo

E tente excluí-lo, rm pensará que você está argumentando:

$ rm --foo 
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.

Uma maneira de contornar isso é usar -- :

$ rm -- --foo

Esta é uma prática comum e recomendada pelo POSIX , por isso é apoiada por muitos programas .

    
por terdon 02.07.2016 / 18:20
1

A maioria dos comandos usará um - para informar ao comando que parâmetros adicionais devem ser tratados de forma diferente. Um exemplo é o rm - --filename mencionado acima. Outro exemplo, um script como 'startx' irá interpretar tudo antes - e passar tudo depois dele para o servidor X.

    
por delt 05.07.2016 / 21:16