Encontrei este link sobre como abrir o tgz em uma única etapa .
gzip -dc target.tar.gz | tar xf -
O que significa '-'?
Encontrei este link sobre como abrir o tgz em uma única etapa .
gzip -dc target.tar.gz | tar xf -
O que significa '-'?
Respostas:
É uma convenção comum usar -um argumento de nome de arquivo para significar stdinou stdout; tarsegue a mesma convenção. Na página do manual:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
-significa para ele. Stdin / stdout é de longe o significado mais comum, mas existem outros. Por exemplo, para algumas versões envsignifica "começar com um ambiente vazio".
Outra convenção é usar '-' para indicar o final dos sinalizadores e o início dos nomes dos arquivos. Esse comportamento está embutido no getopt (3) no RedHat 4, pelo menos. Não consigo encontrar uma página de manual do Red Hat que use '-' para indicar o fim dos argumentos, todos parecem usar '-' para fazer isso. A página de manual awk possui '-' nesse contexto, portanto, talvez apenas os comandos antigos do Unix ou Solaris da "herança" usem '-' como um argumento - separador de nomes de arquivos.
--sinaliza o fim das opções, então tudo o que vem depois é um operando. -não é uma opção, portanto, e tudo o que vem depois é um operando. Esse é o comportamento padrão . Para muitos comandos, como tar, o operando -significa entrada ou saída padrão . Em muitas conchas, set - -aé equivalente a set -- -a, e em algumas conchas Bourne antigas set - -aera a única forma aceita, mas essa era uma exceção com o setbuilt-in.
--para separar opções de argumentos.
tar xfz target.tar.gze para bziptar xfj target.tar.bz2