GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué usar Superflous Dash (-) para pasar banderas de opción a Tar?

Para crear un archivo tar para un directorio, el tar comando con compress , verbose y file las opciones se pueden escribir así:

$ tar -cvf my.tar my_directory/

Pero también funciona hacerlo de esta manera:

 $ tar cvf my.tar my_directory/

Es decir, sin el guión (-) que precede a las opciones. ¿Por qué pasarías un guión (-) a la lista de opciones?

Respuesta aceptada:

Hay varios patrones diferentes para las opciones que se han utilizado históricamente en aplicaciones UNIX. Varios antiguos, como tar , usa un esquema posicional:

argumentos de opciones de comando

como por ejemplo usos de alquitrán

tar *algo*f “archivo operado” *”rutas de archivos a manipular”*

En un primer intento por evitar la confusión, tar y algunos otros programas con el antiguo estilo flags-arguments permitían delimitar las banderas con guiones, pero la mayoría de los viejos simplemente ignoramos eso.

Algunos otros comandos tienen una sintaxis de línea de comandos más complicada, como dd(1) que utiliza banderas, signos de igual, nombres de caminos, argumentos y una perdiz en un peral, todo con un desenfreno salvaje.

En BSD y versiones posteriores de Unix, esto había convergido más o menos en 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 querías usar un nombre con '-'
  • y especialmente con las herramientas GNU, comenzaron a existir limitaciones impuestas por el número de banderas posibles. Entonces, las herramientas de GNU agregaron opciones largas de GNU como --output .

Luego, Sun decidió que el '-' adicional era redundante y comenzó a usar banderas de estilo largo con un solo '-'.

Y así es como llegó a ser el desastre que es ahora.


Linux
  1. ¿Por qué no puedo usar Cd en un script Bash?

  2. ¿Por qué la opción Ssh -t agrega Cr y Lf en la salida redirigida?

  3. Linux – ¿Uso en el mundo real de Tcp_defer_accept?

  4. ¿Por qué usar shm_open?

  5. ¿Por qué debería uno usar sudo?

Por qué uso exa en lugar de ls en Linux

Por qué uso rxvt como mi terminal

¿Qué es una máquina virtual y por qué usarla?

Las 10 razones principales por las que usar Linux

Por qué los nerds usan Linux

Linux vs Mac OS:15 razones por las que usar Linux en lugar de Mac OS