Quais são as diferenças entre "-" e "-" nos comandos?

Respostas:

15

É uma questão de convenção. Os programas padrão POSIX geralmente têm apenas opções de caracteres únicos e todos são prefixados com um único hífen. As versões mais longas são uma melhoria do GNU para maior clareza, pelo que sei, e geralmente são prefixadas com hífens duplos. Você pode ver isso nas bibliotecas e programas usados ​​para analisar as opções - getopte gnu-getoptrespectivamente. Programas que não sejam compatíveis com GNU e não POSIX podem fazer outra coisa. Observe que você realmente não pode ter certeza de que a forma longa de um argumento pode ser a mesma de programa para programa. -fgeralmente significa --force, mas não com apt-get install(equívoco comum). -vpode significar versão - geralmente, ou --verboseassim por diante. Verifique as páginas de manual ou outra documentação para ter certeza. Também dê uma olhada noArtigo da Wikipedia sobre getopt . Tudo isso antecede o Linux em uma década ou mais.

ddé um exemplo de um utilitário padrão POSIX que não tem quaisquer opções hífen em tudo . findé o exemplo clássico de um utilitário padrão POSIX que possui opções de palavras com hífens únicos - quase todas findas opções têm vários caracteres. pssuporta vários estilos de opção:

This version of ps accepts several kinds of options:

1   UNIX options, which may be grouped and must be preceded by a dash.
2   BSD options, which may be grouped and must not be used with a dash.
3   GNU long options, which are preceded by two dashes.

O GNUtar também suporta vários estilos de opção.

Por uma questão de uso, prefira as opções longas nos scripts se tiver certeza de que os scripts serão executados em ambientes compatíveis - a melhoria da clareza é uma bênção ao depurar. Para portabilidade, as opções curtas são preferidas.

muru
fonte
Resposta muito boa. Valeu.
Peng Zhang
4

Geralmente - as opções podem ser encadeadas, como pacman -Syuequivalentes a pacman -S -y -u, e - as opções geralmente assumem um parâmetro como em./configure --prefix=/usr

hanetzer
fonte