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

9

Costumo ver um único traço - ou traço duplo -- seguido por comandos linux ou outros programas linux instalados.

Quais são as diferenças entre traços simples e duplos?

É apenas sobre abreviação? Por exemplo, -v significa --verbose na maior parte do tempo.

    
por Peng Zhang 07.07.2014 / 05:23

2 respostas

13

É uma questão de convenção. Os programas padrão POSIX geralmente possuem apenas opções de caracteres únicos, e todos eles são prefixados com um único hífen. As versões mais longas são uma melhoria do GNU para maior clareza, até onde eu sei, e geralmente são prefixados com hífens duplos. Você pode ver isso nas bibliotecas e nos programas usados para analisar as opções - getopt e gnu-getopt , respectivamente. Programas não-GNU e não compatíveis com POSIX podem fazer algo completamente diferente. Note que você realmente não pode ter certeza de que a forma longa de um argumento pode ser a mesma de programa para programa. -f geralmente significa --force , mas não com apt-get install (equívoco comum). -v pode significar versão - geralmente, ou --verbose e assim por diante. Verifique as páginas do manual ou outra documentação para ter certeza. Também dê uma olhada no artigo 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 nenhum opções hifenizadas em todos os . find é o exemplo clássico de um utilitário padrão POSIX que tem opções de palavras com um único hífens - quase todas as opções de find têm vários caracteres. ps suporta 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 GNU tar também suporta vários estilos de opções.

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

    
por muru 07.07.2014 / 05:32
4

Normalmente, as opções podem ser encadeadas, como pacman -Syu , sendo equivalente a pacman -S -y -u , e - as opções geralmente recebem um parâmetro como em ./configure --prefix=/usr

    
por The NetZ 07.07.2014 / 06:14