Différence entre «homme ls» et «ls –help»?

J'utilise à la fois man et --help dans la programmation Bash pour get de l'aide. Par exemple, pour get des informations sur l'utilisation de la command ls , je peux utiliser

 man ls 

Ou

 ls --help 

Les deux donnent certains résultats similaires. Quelle est la différence entre ces deux?

Pour un, --help n'est pas une command, c'est un argument qui est souvent donné à une command pour get de l'aide. Pendant ce time, l' man est une command, abréviation de "manuel". Les pages manuelles sont installées par de nombreux programmes et constituent un moyen courant de find de l'aide sur les commands, ainsi que sur les appels système (par exemple fork() ).

Si un programme installe une page de manuel, il peut toujours être accédé via la command man , alors que --help n'est qu'une convention courante, mais n'a pas besoin d'être appliquée – il pourrait être juste (et seulement) -h .

man utilise généralement un téléavertisseur, tel que less , automatiquement, ce qui peut faciliter la visualisation et la search de l'information.

Enfin, vous mentionnez la programmation Bash dans votre question – rien de tout cela n'est propre à Bash. Bash ne se soucie pas des commands elles-mêmes ou de leurs arguments pour la plupart.

Dans la plupart des scénarios, l' man est plus détaillé que --help . help donne les options de command line pour une command particulière. Mais l' man est beaucoup plus détaillé.

Plus man est un outil de command line en soi, alors que --help est un argument de command line pour un outil. Petite différence.

Dans la première, vous requestz au système de searchr les pages de manuel pour get de l'aide sur la command. La seconde, vous requestz à la command de fournir sa propre aide. Les deux vont très certainement différer – généralement la command fournit un callback de ses options où la page man est une description détaillée.

man some_command est quelque chose que vous pouvez espérer fonctionner sur tous les systèmes d'exploitation Unix et Unix, à less que les pages de manuel ne soient pas installées.

some_command --help est principalement un GNUism donc il ne fonctionnera généralement pas avec les implémentations non GNU.

GNU, qui n'aime pas les pages de manuel pour une raison quelconque, a également introduit info some_command comme troisième alternative.

Je trouve --help utile car il me permet d'appeler de l'aide pendant que je modifie une command

Par exemple

 rsync -vPn ./* ./newfolder/. 

Oh – Quel est le drapeau pour compresser?

 rsync -vPn --help ./* ./newfolder/. | less 

Je trouve que la command d'aide sur les drapeaux est parfois très utile et prend less de time. Avec l'homme, je dois le taper et revenir à travers mon histoire pour revenir à la command dans laquelle j'étais.