Isso depende do programa em si; o sistema operacional não determina se a ordem é ou não importante.
O conjunto de opções do GCC é tão colossal que não posso dizer com qualquer autoridade se você puder fornecer qualquer opção em ordem arbitrária; você terá que ler a documentação para essa opção. Dito isso, uma regra geral é que, se você tiver duas ou mais opções mutuamente exclusivas (como -O1 -O2
para diferentes níveis de otimização), os programas geralmente terão opções posteriores às anteriores. Novamente, isso não é imposto pelo Linux.
Um programa simples que permite especificar a maioria das opções em qualquer ordem seria ls
. Listar todos os arquivos no diretório atual com detalhes pode ser feito com ls -la
, ls -al
ou ls -l -a
. No entanto, ls-l1 (que é 'el' 'one') não fornece a mesma saída que ls -1l ('one' 'l'). Estas são opções mutuamente exclusivas, e as últimas listadas acima montam as primeiras dadas.
Existe também o programa ímpar que aplica opções aos argumentos conforme eles chegam. Portanto, por exemplo, você pode ter um comando hipotético blah -a 1 2 -b 3
, em que -a
se aplica a todos os três argumentos, mas -b
se aplica apenas a 3
.
Novamente, isso depende do programa individual em questão. Se você não tiver certeza, leia a documentação.