La lecture de man

Bonjour à tous,
je viens vers vous pour demander une explication concernant la “grammaire” de man. Cela fait peu de temps que je me suis mise à Linux. J’essaie d’apprendre les commandes et la lecture de MAN est incontournable. J’ai donc chercher à apprendre à lire le manuel, et pour ce faire j’ai trouvé un tutoriel. Il y a un point de l’explication qu’il donne que je ne comprends pas. J’espère avoir posté ma question au bon endroit au cas où quelqu’un aurait la patience de m’expliquer.

Voilà de quoi il s’agit (J’y ai souligné ce qui me pose problème) : Ici on peut lire :

[quote] Commençons par la première ligne :

cp [OPTION]… [-T] SOURCE DESTLa seule chose obligatoire ici ce sont les paramètres SOURCE (le nom du fichier à copier) et DEST (le nom de la copie à créer).Ces fichiers peuvent être précédés d'une ou plusieurs options (remarquez les points de suspension) [u]ainsi que de l'option -T[/u].

La seconde ligne est un peu différente :

cp [OPTION]… SOURCE… DIRECTORYCette fois, on peut copier un ou plusieurs fichiers (SOURCE…) vers un répertoire (DIRECTORY). Tout cela peut encore une fois être précédé d'une ou plusieurs options.

Enfin, la troisième ligne :

cp [OPTION]… -t DIRECTORY SOURCE…… signifie qu'on peut aussi écrire le répertoire (DIRECTORY) dans un premier temps, suivi d'un ou plusieurs fichiers (SOURCE…). Attention, vous remarquez que dans ce cas il est [u]obligatoire d'utiliser le paramètre -t qui n'est plus entre crochets[/u].[/quote]
  1. L’auteur distingue [-T] et -t : Je ne comprends pas pourquoi une certaine option est précisée dans le synopsis alors qu’elle est soulignée. Si elle est soulignée, c’est bien qu’on peut la remplacer par l’une des options possibles listée dans Description ? Ainsi pour ce qui est dans cet exemple de [-T], pourquoi le synospis a choisi [-T] et non pas une autre ou tout simplement pourquoi ne remplace-t-il pas [-T] par [option] ? Faut-il comprendre : que la syntaxe peut être
    soit : cp [OPTION]… [-T] SOURCE DEST
    soit : cp [OPTION]… SOURCE DEST ?
    Bref : Si on choisit la syntaxe SOURCE d’abord et DESTINATION après alors on n’a deux choix, écrire [-T] ou ne pas l’écrire avant “SOURCE”. Est-ce juste de penser que le fait que [-T] soit souligné ne veut pas dire qu’on peut choisir une autre option mais [-T] est possible ou non. :doh:

  2. Pour la suite (troisième ligne de l’exemple de l’auteur) ma compréhension me semble encore plus incertaine. Voilà ce qui me pose problème : si l’option [-t] est obligatoire pourquoi est-elle soulignée ??? Si souligner quelque chose veut dire que cela peut être remplacé, alors cela ne devrait pas être obligatoire; ou si une chose est obligatoire, alors elle ne peut pas être remplacée par une autre ??? Comment se résout cette apparente contradiction ?
    Serait-il correct de comprendre ainsi :
    si on choisit la syntaxe “répertoire d’abord, destination ensuite” alors il faut absolument une option, quelle qu’elle soit, on peut choisir celle qu’on veut dans Description. Mais alors pourquoi avoir choisi -t ? :blush:

Merci d’avance car je tourne en rond sur ces questions d’option précisée dans le syopsis et répétée dans la description, et je n’ai pas trouvé d’explication à ce sujet. :pray:

bonjour,

 man est le programme de visualisation des pages de manuel

faites un essai

man man

cela vous convient-il
A+
JB1
:violin:

Non cela je le savais : pour faire court : est-ce que le -t de la troisième ligne
(“cp [OPTION]… -t DIRECTORY SOURCE…”) peut être remplacé par un autre paramètre ?
Comment peut-il être à la fois remplaçable (car souligné) et obligatoire (sans crochet) ?

C’est quoi la différence entre option et paramètre ?

Merci

bonjour,
jocker
bon app
A+
JB1
:violin:

Je n’ai pas tout suivi, mais je crois que tu es trop rigoureuse :wink: ou que je n’ai moi-même jamais vraiment cherché à comprendre les détails d’écriture des pages man.

Une option (de ligne de commande), pour moi, n’est jamais obligatoire.
Mais selon ce qu’on cherche à faire, ou selon la syntaxe que l’on souhaite appliquer, on peut “devoir” ajouter l’une ou l’autre des options.

-t, --target-directory=DIRECTORY copy all SOURCE arguments into DIRECTORY

Donc voilà pourquoi si on souhaite placer la destination avant la source, il faut ajouter l’option qui va bien.

Merci Zbf de ta réponse : pour moi être trop rigoureux va avec la maîtrise du code, car un code est forcément rigoureux pour être théorique et pratique. Qui pourrait suivre le code de la route, s’il était plein d’incohérence? Je crois que ta réponse m’aide et m’invite à comprendre les choses par le biais de la pratique, je vais essayer :wink:

Tout est argument, même les options. Tout ce qui est argument n’est pas option.
Argument : ce qui est passé à la commande ($0,$1 $2…)
Option : ce qui modifie le comportement de la commande, généralement précédé d’un tiret (pas toujours ex: $ ps a || $ ps -a; $ tar x || tar -x …)

       [-abc]             tous les arguments entre [ ] sont facultatifs ;

SYNOPSIS cp [OPTION]... [-T] SOURCE CIBLE cp [OPTION]... SOURCE... RÉPERTOIRE cp [OPTION]... -t RÉPERTOIRE SOURCE...

Regarde l’ordre
d’abord la (ou les) source(s) puis la destination SOURCE(S) CIBLE//SOURCE(S) RÉPERTOIRE

$ cp [OPTION]… SOURCE… RÉPERTOIRE
$ cp [OPTION]… [-T] SOURCE CIBLE

contre d’abord la destination puis la (ou les) source(s)

$ cp [OPTION]… -t RÉPERTOIRE SOURCE…

L’ordre que nous appellerons inversé (Cible Source(s)) prend l’option -t.

Instructif tout ça :023
Si seulement je pouvais m’en souvenir :unamused:

Merci etxeberrizahar de ta réponse, elle me permet de comprendre la différence entre option et commande que je n’avais pas trop saisie.

En effet, en faisant man man on trouve :

[code]Les conventions suivantes s’appliquent à la section SYNOPSIS et peuvent
être utilisées comme un guide pour les autres sections.

   texte gras         à taper exactement comme indiqué ;
   [u]texte[/u] [u]italique[/u]     à remplacer par l'argument approprié ;
   [-abc]             tous les arguments entre [ ] sont facultatifs ;

[/code]
A la dernière ligne (ci-desus) les arguments entre crochets ne sont pas soulignés. Et je n’ai considéré que cela pour comprendre synopsis de la commande cp

SYNOPSIS cp [[u]OPTION[/u]]... [[b][u]-T[/u][/b]] [u]SOURCE[/u] [u]CIBLE[/u] cp [[u]OPTION[/u]]... [u]SOURCE[/u]... [u]RÉPERTOIRE[/u] cp [[u]OPTION[/u]]... [b][u]-t[/u][/b] [u]RÉPERTOIRE SOURCE[/u]...

alors ma question a été de savoir pourquoi [-T] et -t sont soulignés ? :doh:
Me focalisant sur le fait que par convention ce qui est souligné est censé être remplacé par le nom approprié; je me suis mise alors à vouloir que cette convention vaille pour tout. Et là j’ai été bêbête …

Je viens de comprendre ma bêtise en regardant de plus près la deuxième ligne de man man c’est pourtant clair !

texte italique à remplacer par l'argument approprié ;
la convention: soulignée = à remplacer, ne vaut que pour du texte !

En fait, je pense que tu avais bien compris ma bêtise, et je comprends ta réponse (bien délicate, merci) dans le sens qu’il n’y a pas besoin de comprendre pourquoi un argument du synopsis est souligné ou non. Et tu as raison avec Zbf :blush:
Je m’excuse donc d’avoir compliqué les choses.

Je comprend grâce à vous tous qu’on peut faire deux choses avec cp :

  1. copier en créant un fichier identique en contenu au fichier copié(source) et qui prend un autre nom que celui d’origine (la destination), et comme normalement la destination de cp crée un répertoire, pour pouvoir faire cela, on le prévient ne pas le faire en ajoutant [-T]

-T, --no-target-directory traiter la CIBLE comme un fichier normal

  1. on peut créer un répertoire dans lequel il y a la (les) copie(s) (source(s)): et là rien à ajouter puisque c’est le truc normal;

2 bis) on peut de même créer un répertoire dans lequel il y a la ou les copies, mais en écrivant autrement et donc on le prévient, en ajoutant -t, qu’on lui demande le truc normal avec une syntaxe inversée.

Donc à chaque fois qu’il y a un argument (des arguments) dans le synopsis le truc à faire c’est d’aller lire ce à quoi il(s) serve(nt) dans “Description”, et le truc à ne pas faire c’est de ne pas se demander pourquoi ceci ou cela est souligné, sauf quand il s’agit du texte qu’on invente soi-même pour désigner les répertoires ou fichiers qu’on veut créer ! :wink:

A bientôt merci encore

Ne t’excuse de rien ! C’est rare de voir quelqu’un attaquer par ce long et fastidieux chemin de la documentation et des manuels, mais c’est à mon humble avis le plus constructif.