No Unix tradicional, as opções eram uma letra, como ls -l
ou ls -d
. Em alguns casos, a opção levaria um argumento, como em cut -d: -f1 /etc/passwd
( -d
(delimitador) com valor :
, -f
(campos a serem selecionados) com valor 1
). Onde as opções não receberam argumentos, em vez de ls -l -d -F /tmp/*
, você pode escrever ls -ldF /tmp/*
. Alguns comandos usam opções começando com +
, como more +10 file
starts more(1)
na linha 10 de file
.
Eu acredito que foi o projeto GNU por volta de 87 que apresentou a idéia de opções longas, como cut --delimiter=: --fields=1 /etc/passwd
significa o mesmo que o comando enigmático acima no cut
do GNU. Isto dá opções muito mais legíveis, e trabalha em torno de haver apenas 62 letras e dígitos, o que é muito poucas opções para, e. ls(1)
... assim, temos gcc -c -O2 --fomit-frame-pointer xxx.c
e tal.
Alguns comandos heréticos usam opções longas começando com apenas -
, como convert -adjoin -authenticate passwd some.jpg graphic.gif files.png -o here.pdf
(de ImageMagick , o -adjoin
coloca as imagens juntas, o -authenticate
recebe uma senha; isso é apenas quebrado da lista de opções da página de manual, essa combinação pode não fazer sentido).
Muitos comandos (mas não todos, e depende do sabor do Unix ser seu veneno) levam --
para dizer "seguir não é mais opções, mesmo que pareçam opções", então com o rm(1)
do GNU você pode se livrar do arquivo -rf
comumente criado como uma brincadeira idiota por rm -- -rf
.