La mayoría de los comandos unixoides presentan alternativas cortas y largas para las opciones de línea de comandos, como ls -a
y ls --all
, o ls -A
y ls --almost-all
. ¿Por qué existen esas dos formas? Uno es más corto de escribir, el otro es más fácil de leer y entender. Pero cada vez que escribo un script de shell, necesito decidir cuál quiero usar. ¿Se sabe por qué existen las dos alternativas? Cuál fue primero, por qué se presentó el otro. En DOS / Windows, por ejemplo, hay casi solo opciones de una letra que no distinguen entre mayúsculas y minúsculas.
21
ls -BartSimpsonIsJustCool
(oGreat
si está en Solaris.I
sigue es el argumento de la-I
opción, por lo que solo hace una diferencia si tiene un archivo llamadosJustCool
en el directorio actual. La-BartSimpson
parte se puede reordenar, excepto que elS
(ordenar por tamaño) debe permanecer después delt
(ordenar por fecha). Tampocom
tiene efecto cuandon
oo
están presentes. Entonces, el comando es equivalente als -BSainopsr
, y si no me he perdido nada, no puede eliminar otra letra para lograr el mismo resultado y puede reordenar estas letras libremente.gzip -9 filename
por ejemplo.Podrías adivinar que es cuestión de gustos. Al escribir en la línea de comando, puede preferirse una opción corta, especialmente en el caso de las opciones de ejecución conjunta (por ejemplo
ls -AL
). Las opciones largas son mejores para transmitir la intención, por lo que no necesita consultar la página de manual cuando leals --almost-all --dereference
.Naturalmente, a medida que adquiera experiencia, puede comprobar que las dos
-A
y-L
cortos opciones son suficientemente conocidos, y no requieren de esta documentación adicional. Especialmente en un comando complejo que puede combinar varios comandos de manera interesante con evaluación, redirección, etc. En tal caso, puede preferir la brevedad sobre la documentación.fuente
Otro propósito que puedo ver al tener diferentes formas de especificar parámetros (cortos y largos) es que al escribir, a la gente de la línea de comandos de Unix / Linux le gusta tener los comandos más cortos posibles. Sin embargo, esos pueden volverse crípticos, y si un guión se escribe usando esas versiones cortas, pueden volverse difíciles de entender en el futuro. El uso de la versión larga puede hacer que el mismo comando sea más legible y entendible por alguien que no sea el gurú de este comando, especialmente si este comando es en realidad un script escrito localmente en lugar de un comando conocido.
fuente