Quelles sont les différences entre «-» et «-» dans les commandes?

Réponses:

15

C'est une question de convention. Les programmes standard POSIX n'ont généralement que des options de caractère unique, et ils sont tous préfixés par un seul tiret. Les versions plus longues sont une amélioration GNU pour plus de clarté, pour autant que je sache, et sont généralement préfixées par des tirets doubles. Vous pouvez le voir dans les bibliothèques et les programmes utilisés pour analyser les options - getoptet gnu-getoptrespectivement. Les programmes non GNU et non conformes à POSIX peuvent faire tout autre chose. Notez que vous ne pouvez vraiment pas être sûr que la forme longue d'un argument peut être la même d'un programme à l'autre. -fsignifie généralement --force, mais pas avec apt-get install(idée fausse commune). -vpeut signifier la version - généralement, ou --verbose, et ainsi de suite. Vérifiez les pages de manuel ou autre documentation pour être sûr. Jetez également un œil à laArticle Wikipedia sur getopt . Tout cela précède Linux d'une décennie ou plus.

ddest un exemple d' un utilitaire standard POSIX qui n'a pas toutes les options césure du tout . findest l'exemple classique d' un utilitaire standard POSIX qui a des options de mots avec des tirets simples - presque toutes findles options de sont de plusieurs caractères. psprend en charge plusieurs styles d'options:

This version of ps accepts several kinds of options:

1   UNIX options, which may be grouped and must be preceded by a dash.
2   BSD options, which may be grouped and must not be used with a dash.
3   GNU long options, which are preceded by two dashes.

GNUtar prend également en charge plusieurs styles d'options.

En termes d'utilisation, préférez les options longues dans les scripts si vous pouvez être sûr que les scripts seront exécutés dans des environnements compatibles - l'amélioration de la clarté est une bénédiction lors du débogage. Pour la portabilité, les options courtes sont préférées.

muru
la source
Réponse vraiment sympa. THX.
Peng Zhang
4

Habituellement - les options peuvent être chaînées ensemble, comme pacman -Syuétant équivalentes à pacman -S -y -u, et - les options prennent généralement un paramètre comme dans./configure --prefix=/usr

hanetzer
la source