Como interpretar a sintaxe de "uso" do comando bash?

11

Como exatamente você tem que interpretar a saída de uma saída de "uso" dos comandos, no bash, por exemplo.

Por exemplo, no meu OS X, cpme dá

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
  • O que as opções aninhadas, como -H dentro de -R, indicam?
  • Maiúsculas e minúsculas têm algum significado?
  • Quando um argumento é opcional, necessário?

Preciso implementar uma linha de comando telnet contra um programa meu e gostaria de esclarecer isso.

raoulsson
fonte

Respostas:

15

Para quem tenta entender o que significa saída de uso, a melhor maneira é man man.

sério :-) Aproveite o tempo para aprender as convenções, isso realmente ajuda.

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.
   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.
Justin
fonte
+1 excluindo minha postagem como redundante.
Warner
man manno CentOS 6.6 não tem esta seção; nem a versão do man manMac OS X 10.7.4. Onde posso encontrá-lo?
Wildcard
Encontrei, está man man-pagesno CentOS e man manpagesno Mac OS X (que usa comandos BSD).
Curinga
Essa resposta, assim como o man mancomando, não parece cobrir casos em que a entrada deve ser um dos itens em uma enumeração. Por exemplo<env> - must be one of [dev | test | uat | perf | prod]
Addison
2

Antes de tudo, embora existam convenções gerais, elas não são aplicadas uniformemente.

  • Neste caso, ele está dizendo que se você usar -R(indicando "recursão"), então você pode usar -H, -Lou -P. Se você não usar -R, essas opções não são relevantes.
  • Sim, o caso é quase sempre importante. Tão geralmente -he -Hfaz coisas completamente diferentes.
  • Os colchetes geralmente indicam que uma opção ou argumento é "opcional". (As coisas com hífens à sua frente são "opções", as palavras sem hífens são argumentos.) Sem colchetes, a opção ou argumento é geralmente necessário. No seu exemplo, "source_file" e "target_directory" são necessários. O "..." indica que o argumento anterior pode ser repetido.

Outros pontos dignos de nota:

  • A barra vertical indica "OU". Isso [-fi | -n]indica que você pode usar -fe / ou -imas não em combinação com -n.
  • As opções agrupadas entre parênteses indicam que você pode usar qualquer uma delas. Isso [-apvX]indica que você pode usar qualquer combinação dessas opções. Eles nem precisam ser esmagados juntos. Então, -a -v -pseria uma combinação válida.
Insyte
fonte