O que significa “-” na linha de comando do Linux / Unix? [duplicado]

12

git diff [options] [<commit>] [--] [<path>…]

Aqui, como devo entender o que [-] significa? E quando devo usá-lo?

    
por Benjamin 18.10.2012 / 08:44

2 respostas

16

Como sempre, você deve ler a página de manual de um comando para descobrir como ele interpreta seus argumentos.

-- é comumente usado para indicar o final das opções de comando. Isso é especialmente útil se você quiser passar um nome de arquivo ou outro argumento que comece com - . Também é uma boa ideia usá-lo antes dos curingas que podem se expandir para um nome de arquivo que comece com um hífen. (Por exemplo, tente mkdir foo; cd foo; echo >-l; ls *; ls -- * .)

Mas git diff também o usa para indicar se um argumento é um <commit> (indicando qual revisão deve ser diff) ou um <path> (indicando qual arquivo deve ser diferenciado). Geralmente, ele pode adivinhar, mas é possível que um valor seja um commit válido e um caminho válido. Nesse caso, você pode usar git diff foo -- para indicar que foo é uma confirmação ou git diff -- foo para indicar que foo é um caminho.

    
por 18.10.2012 / 09:46
19

O -- é comumente usado no comando para indicar o final das opções. Isso é útil se o nome do arquivo começar com "-" ou se sua entrada for desconhecida. Aqui está um exemplo de seu uso:

git diff --stat -- --file1 --file2

--file1 é tratado como um nome de arquivo em vez de outra opção.

    
por 18.10.2012 / 09:03