O GNU há muito pressiona por uma combinação de opções curtas ( -h
) e opções longas ( --help
), o que ajuda bastante a esclarecer a confusão sintática de comandos como tar
e dd
, com sua sintaxe legada que remonta à idade da pedra.
Mas aprendi recentemente que o GNU parted
tem um terceiro tipo de opção, onde um 'recurso não documentado' pode ser acessado com ---pretend-input-tty
. Parece que foi introduzido neste commit em 2007.
É a primeira vez que vejo isso e estou intrigado. Trata-se de algum tipo de convenção mais ampla ou apenas pontual?
Opções longas não documentadas começando com 3 travessões são de fato difundidas em software do projeto GNU. Até onde eu sei, isso não é mencionado nos padrões de codificação GNU .
Outros exemplos de busca
{"-.*argument
nos arquivos C na árvore de origem de alguns pacotes de software GNU:Entre eles, o mais antigo que consegui encontrar em uma rápida olhada nos logs do git foi o
tail
do---disable-inotify
( mencionado em algumas perguntas e respostas aqui ), que foi adicionado em 2009.Em qualquer caso, uma opção não documentada é aquela que não está comprometida e pode desaparecer sem aviso prévio numa versão futura. Usar essa
---option
convenção é bom porque é um lembrete de que ela não veio para ficar.Existem também opções não documentadas de uma única letra, como o
-X
do GNUgrep
ou opções que possuem outro alias não documentado para compatibilidade com outras implementações, como o--text
/--binary
do GNUcksum
.Alguns começaram como não documentados, como o
-E
do GNUsed
(para compatibilidade com BSD, GNU tendo-r
em vez disso), mas acabaram sendo documentados mais tarde (no caso desed
's-E
porque foi esse que acabou sendo especificado pelo POSIX e também é indiscutivelmente um muito melhor, pois é consistentegrep -E
e faz muito mais sentidoE
para xtended do que para egex).E
r
r