O que significa “-” como um argumento para um comando?

9

Eu encontrei este link sobre como abra tgz em um passo .

gzip -dc target.tar.gz | tar xf -

O que significa o '-'?

    
por ripper234 16.03.2011 / 14:39

2 respostas

18

É uma convenção comum usar - em um argumento de nome de arquivo para significar stdin ou stdout ; tar segue a mesma convenção. Na página do manual:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)
    
por 16.03.2011 / 14:48
0

Outra convenção é usar '-' para indicar o fim dos sinalizadores e o início dos nomes dos arquivos. Esse comportamento é embutido no getopt (3) no RedHat 4, pelo menos. Não consigo encontrar uma página de manual da Red Hat que use '-' para indicar o fim dos argumentos, todos eles parecem usar '-' para fazer isso. A página man do awk tem '-' nesse contexto, então talvez apenas os comandos Unix ou Solaris "heirloom" antigos usem '-' como um separador de nomes de arquivos de argumentos.

    
por 16.03.2011 / 18:11