Por que existem alternativas curtas e longas para opções de linha de comando?

21

A maioria dos comandos unixoid apresenta alternativas curtas e longas para opções de linha de comando, como ls -a e ls --all , ou ls -A e ls --almost-all . Por que essas duas formas existem? Um é mais curto para digitar, o outro é mais fácil de ler e entender. Mas toda vez que eu escrevo um script de shell, eu preciso decidir qual eu quero usar. É sabido porque as duas alternativas existem? Qual deles foi o primeiro, porque o outro foi introduzido. No DOS / Windows, por exemplo, há quase apenas opções de uma letra insensível a maiúsculas e minúsculas.

    
por ygoe 11.08.2010 / 10:02

3 respostas

23

Originalmente, havia apenas opções de caractere único. Alguns programas tiveram opções de vários caracteres, mas ainda com um único traço. As opções de múltiplos caracteres de traço AFAIK vêm de GNU ; eles foram introduzidos porque são mais legíveis e muitas vezes mais memoráveis (e você pode ter mais de 52 deles). Muitos programas agora têm os dois: opções curtas para quando você está digitando na linha de comando e lembre-se do caractere, longas opções para scripts ou na linha de comando, se você se lembra apenas do nome da opção mais longa.

    
por 11.08.2010 / 10:22
1

Você pode imaginar que é uma questão de gosto. Ao digitar na linha de comando, uma opção curta pode ser preferida, especialmente no caso de run-together-options (por exemplo, ls -AL ). As opções longas são melhores para transmitir a intenção, portanto, você não precisa consultar a página do manual ao ler ls --almost-all --dereference .

Naturalmente, à medida que você ganha experiência, você pode descobrir que ambas as opções -A e -L short são suficientemente conhecidas e não exigem essa documentação extra. Especialmente em um comando complexo que pode combinar vários comandos de maneiras interessantes com avaliação, redirecionamento, etc. Nesse caso, você pode preferir a brevidade pela documentação.

    
por 11.08.2010 / 10:24
1

Outra finalidade que vejo em ter maneiras diferentes de especificar parâmetros (curtos e longos) é que, ao digitar, o pessoal de linha de comando do Unix / Linux gosta de ter comandos o mais curtos possível. No entanto, elas podem se tornar enigmáticas e, se um script for escrito usando essas versões curtas, elas podem se tornar difíceis de entender no futuro. Usar a versão longa pode tornar o comando SAME mais legível e compreensível por alguém que não é o guru deste comando, especialmente se este comando for na verdade um script escrito localmente em oposição a um comando bem conhecido.

    
por 11.08.2010 / 13:49