Tradicionalmente, as opções longas (mais de uma letra) são escritas com dois traços e as curtas (uma letra) com um único traço. Nem todos os programas respeitam isso.
Uma das referências mais antigas que eu encontrei para isso é: link .
Esta pergunta já tem uma resposta aqui:
Por que usamos hífen duplo em tar --anchored
e hífen único em tar -b
?
Eu quero dizer por que algumas opções de linha de comando têm hífen único (-) enquanto outras têm duplo (-)?
Também um exemplo git
:
git commit --amend
git commit -a
Tradicionalmente, as opções longas (mais de uma letra) são escritas com dois traços e as curtas (uma letra) com um único traço. Nem todos os programas respeitam isso.
Uma das referências mais antigas que eu encontrei para isso é: link .
Um único traço para um ( ou muitos ) argumentos abreviados:
command -abc
Um duplo para argumentos únicos e não abreviados:
command --alice --barry --catherine
É importante notar que isso é apenas uma convenção. Qualquer comando pode receber qualquer argumento em qualquer estilo (desde que escape do shell), independentemente dos traços. Se nosso exemplo command
aqui foi programado para aceitá-los, os seguintes poderiam ser sinônimos válidos dos exemplos acima:
command abc
command alice barry catherine
Estes são provavelmente exemplos horríveis, mas o que estou tentando transmitir é uma convenção de como lidar com argumentos como argumentos não posicionais. Algumas coisas não querem isso. Algumas coisas usam apenas traços únicos. Alguma coisa usa caracteres que não sejam traços (já vi aplicativos Windows compilados ainda usando /
) ... Realmente não faz muita diferença.
Como outros caras já disseram, esta é uma convenção iniciada pelo projeto GNU para usar um único sinal de menos para abreviar, o que significa uma letra longa e um sinal de menos para opções longas, ou seja, opções com mais de uma letra . Esta convenção é bem estabelecida e usada por muitos projetos fora do GNU, mas quando foi introduzida, confundiu algumas pessoas acostumadas a usar exclusivamente opções curtas. No entanto, há mais para isso:
$ git pull -r
é equivalente a:
$ git pull --rebase
$ date --s
é equivalente a:
$ date --set
$ mutt -f/var/mail/user
é equivalente a:
$ mutt -f /var/mail/user
$ rm -rv dir
é equivalente a:
$ rm -r -v dir
$ touch -- -file
Tudo depende de como um determinado software analisa suas opções.
Observe também como "-"
sinais que você chama de hífens são conhecidos como menos para a maioria dos usuários Unix, principalmente porque existem programas que usam a opção que começa com plus sinal ( X por exemplo). Veja aqui .
rmdir --ignore-fail-on-non-empty {directory} ...
O traço duplo (-) está antes da palavra completa, caso contrário, use apenas uma letra com um traço no início (-).
Olhando para outros manuais, por ex. rmdir
manual , mostra uma tabela das opções que você pode usar:
-p
--ignore-fail-on-non-empty
-f, --force
-r, -R, --recursive
-v, --verbose
Tags command-line ubuntu