Encontré este enlace sobre cómo abrir tgz en un solo paso .
gzip -dc target.tar.gz | tar xf -
¿Qué significa el '-'?
Encontré este enlace sobre cómo abrir tgz en un solo paso .
gzip -dc target.tar.gz | tar xf -
¿Qué significa el '-'?
Respuestas:
Es una convención común usar -
en un argumento de nombre de archivo para significar stdin
o stdout
; tar
sigue la misma convención. Desde la página del manual:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
-
significa para él. Stdin / stdout es, con mucho, el significado más común, pero hay otros. Por ejemplo, para algunas versiones env
significa "comenzar con un entorno vacío".
Otra convención es usar '-' para indicar el final de las banderas y el comienzo de los nombres de los archivos. Ese comportamiento está integrado en el getopt (3) en RedHat 4, al menos. No puedo encontrar una página de manual de Red Hat que use '-' para indicar el final de los argumentos, todos parecen usar '-' para hacer eso. La página de manual de awk tiene '-' en ese contexto, por lo que quizás solo los viejos comandos de "herencia" de Unix o Solaris usan '-' como argumento - separador de nombres de archivo.
--
señala el final de las opciones, por lo que todo lo que viene después es un operando. -
no es una opción, por lo tanto, y todo lo que viene después es un operando. Este es un comportamiento estándar . Para muchos comandos, como tar
, el operando -
significa entrada o salida estándar . En muchos shells, set - -a
es equivalente a set -- -a
, y en algunos viejos shells Bourne set - -a
era la única forma aceptada, pero esta es una excepción con el set
incorporado.
--
separar opciones de argumentos.
tar xfz target.tar.gz
y para bziptar xfj target.tar.bz2