Existen varios patrones diferentes para las opciones que se han usado históricamente en aplicaciones UNIX. Varios viejos, como el alquitrán , usan un esquema posicional:
argumentos de opciones de comando
como por ejemplo usos de alquitrán
tar * something * f "archivo operado en" * "rutas de archivos para manipular" *
En un primer intento de evitar la confusión, tar y algunos otros programas con el viejo estilo de argumentos de banderas permitieron delimitar las banderas con guiones, pero la mayoría de nosotros los viejos simplemente ignoramos eso.
Algunos otros comandos tienen una sintaxis de línea de comandos más complicada, como dd (1) que usa banderas, signos iguales, nombres de ruta, argumentos y una perdiz en un peral, todo con un abandono salvaje.
En BSD y versiones posteriores de Unix, esto había convergido más o menos a banderas de un solo carácter marcadas con '-', pero esto comenzó a presentar un par de problemas:
- las banderas pueden ser difíciles de recordar
- a veces realmente querías usar un nombre con '-'
- y especialmente con las herramientas GNU, comenzaron a existir limitaciones impuestas por el número de posibles indicadores. Entonces las herramientas GNU agregaron opciones largas de GNU como
--output
.
Entonces Sun decidió que el '-' extra era redundante y comenzó a usar banderas de estilo largo con '-'s individuales.
Y así es como llegó a ser el desastre que es ahora.