what is the difference with or without a comma?
Nenhum. Use a opção curta ou longa, a vírgula não importa.
No meu Kubuntu, copiei arquivos de /usr/share/man/man1
e /usr/share/man/man8
, descomprimidos, higienizados (fluff removido) e pesquisado com regex para opções sem a vírgula. Eu naveguei pelos resultados, examinei alguns arquivos "suspeitos". Minhas conclusões (heurística, não estrita):
- Relativamente poucos manuais usam o estilo sem-vírgula.
- Aqueles que raramente misturam com o estilo com-comma.
-
man stat
usa sem vírgula para -c --format
, provavelmente é apenas um erro de digitação.
how do I learn this kind of stuff?
Meu jeito: se familiarizar. Man pages são para pessoas; a maioria das pessoas (mesmo nerds) é capaz de lidar com padrões difusos, erros de digitação, pequenas inconsistências ou exceções. Alguns manuais são tão grandes ( man 1 bash
) ou precisam lidar com conceitos abstratos ( man 5 sudoers
), então eles são mais formais; mas quando você precisa resolver um problema específico, você raramente estuda todo o manual, você procura exemplos. Então você experimenta , adapta exemplos disponíveis, escreve comandos que não funcionam, escreve comandos que funcionam, compara o que funciona com a documentação.
E então você começa a conhecer essas convenções um pouco difusas. Você confia na Regra de menor surpresa , você espera para ver algumas opções curtas equivalentes a algumas opções longas. Você nem percebe que alguns manuais omitem vírgulas. Você vê man stat
é inconsistente apenas porque a vírgula ausente se destaca visualmente; você dá de ombros e continua ...
... porque você está familiarizado com alguns outros manuais que explicitamente avisam sobre uma sintaxe surpreendente, se houver; e você acha ótimo seus autores terem feito uma coisa tão boa.
Mas mesmo que houvesse uma diferença com ou sem vírgula, até que ponto isso importa? desde
- você executa
stat -c '%n' /
e recebe /
, o que é esperado;
- você executa
stat --format='%n' /
e obtém o mesmo resultado;
mas
- você executa
stat -c --format='%n' /
e obtém --format=/
.
I'm afraid I might be missing some simple detail.
Compare isso com o caso das reticências nos menus das ferramentas GUI. Você sabia que muitos aplicativos usam reticências ( …
) para indicar itens de menu que não tomam medidas imediatas? Por exemplo. Print…
gera janela adicional onde você pode alterar algo antes de prosseguir com a impressão real ou pode cancelar; em tal aplicação Print
(sem reticências) imprimiria imediatamente.
Eu tenho usado ferramentas GUI de maneira eficiente por vários anos, antes de aprender o que as reticências significam. Foi por acaso que li algumas curiosidades e só então percebi que as reticências estão (e "sempre" estavam) ali. Agora eu sei que qualquer item de menu com reticências é "seguro", deve me fornecer uma maneira de cancelar.
Meu ponto é: tal detalhe pode significar algo, pode ser bastante útil (então você fez uma pergunta razoável); mas se você pode fazer o stat
fazer o que você quer (e se eu posso usar menus para conseguir o que eu quero), então perder o detalhe não é grande coisa.