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


Respostas:


18

É 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)

11
Isso é apenas uma convenção; você precisa ler a página de manual do comando específico para ver o que -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".
Cjm

0

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.


3
--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.
Gilles 'SO- stop be evil'

Os programas Solaris seguem principalmente a convenção padrão POSIX de --para separar opções de argumentos.
alanc
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.