Quelle est la différence avec ou sans une virgule?
Aucune. Utilisez l'option courte ou longue, la virgule n'a pas d'importance.
Dans mon Kubuntu, j'ai copié des fichiers de /usr/share/man/man1
et /usr/share/man/man8
, décompressé, nettoyé (enlevé les fioritures) et recherché avec regex les options sans la virgule. J'ai parcouru les résultats, examiné quelques fichiers "suspects". Mes conclusions (heuristiques, non strictes) :
- Relativement peu de manuels utilisent le style sans virgule.
- Ceux qui le font le mélangent rarement avec le style avec virgule.
man stat
utilise le style sans virgule pour -c --format
seulement, c'est probablement juste une faute de frappe.
Comment puis-je apprendre ce genre de choses?
Ma méthode : en devenant familier. Les pages de manuel sont pour les personnes ; la plupart des gens (même les nerds) sont capables de gérer les modèles flous, les fautes de frappe, les petites incohérences ou exceptions. Certains manuels sont tellement énormes (man 1 bash
) ou doivent traiter de concepts abstraits (man 5 sudoers
), donc ils sont plus formels ; mais quand vous avez besoin de résoudre un problème spécifique, vous n'étudiez rarement tout le manuel, vous cherchez des exemples. Donc vous expérimentez, adaptez les exemples disponibles, écrivez des commandes qui ne fonctionnent pas, écrivez des commandes qui fonctionnent, comparez ce qui fonctionne avec la documentation.
Et puis vous commencez à connaître ces conventions quelque peu floues. Vous vous fiez à la Règle de Moindre Surprise, vous vous attendez à voir certaines options courtes équivalentes à certaines options longues. Vous ne remarquez même pas que certains manuels omettent des virgules. Vous voyez que man stat
est inconsistant seulement parce que l'absence de virgule ressort visuellement; vous hausserez les épaules et continuerez...
...parce que vous êtes familier avec d'autres manuels qui vous avertissent explicitement de la syntaxe surprenante, le cas échéant ; et vous pensez que c'est super que leurs auteurs aient fait une aussi bonne chose.
Mais même s'il y avait une différence avec ou sans une virgule, à quel point cela peut-il importe ? puisque
- vous exécutez
stat -c '%n' /
et obtenez /
comme prévu ;
- vous exécutez
stat --format='%n' /
et obtenez le même résultat ;
mais
- vous exécutez
stat -c --format='%n' /
et obtenez --format=/
.
J'ai peur de passer à côté d'un détail simple.
Comparez ceci au cas des points de suspension dans les menus des outils GUI. Saviez-vous que de nombreuses applications utilisent des points de suspension (…
) pour indiquer des éléments de menu qui n'ont pas d'action immédiate ? Par exemple, Imprimer...
ouvre une fenêtre supplémentaire où vous pouvez modifier quelque chose avant de procéder à l'impression réelle, ou vous pouvez annuler ; dans une telle application, Imprimer
(sans points de suspension) imprimerait immédiatement.
J'utilisais efficacement des outils GUI depuis plusieurs années, avant de comprendre ce que signifient les points de suspension. C'était par hasard, j'ai lu des anecdotes et c'est seulement alors que j'ai remarqué que les points de suspension sont (et "ont toujours été") là. Maintenant, je sais que tout élément de menu avec des points de suspension est "sûr", il devrait me fournir un moyen d'annuler.
Mon point est : un tel détail peut signifier quelque chose, cela peut être assez utile (donc vous avez posé une question raisonnable) ; mais si vous pouvez faire en sorte que stat
fasse ce que vous voulez (et si je peux utiliser les menus pour obtenir ce que je veux), alors manquer le détail n'est pas une grosse affaire.