GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi utiliser un tiret superflu (-) pour passer les drapeaux d'options au goudron ?

Pour créer un fichier tar pour un répertoire, le tar commande avec compress , verbose et file les options peuvent être saisies ainsi :

$ tar -cvf my.tar my_directory/

Mais ça marche aussi de le faire de cette façon :

 $ tar cvf my.tar my_directory/

C'est-à-dire sans le tiret (-) précédant les options. Pourquoi passeriez-vous un tiret (-) à la liste d'options ?

Réponse acceptée :

Il existe plusieurs modèles différents pour les options qui ont été utilisées historiquement dans les applications UNIX. Plusieurs anciens, comme tar , utilisez un schéma positionnel :

arguments des options de commande

comme par exemple tar utilise

tar *quelque chose*f "fichier opéré" *"chemins des fichiers à manipuler"*

Dans une première tentative pour éviter la confusion, tar et quelques autres programmes avec l'ancien style flags-arguments permettaient de délimiter les drapeaux avec des tirets, mais la plupart d'entre nous, les vieux, ont tout simplement ignoré cela.

Certaines autres commandes ont une syntaxe de ligne de commande plus compliquée, comme dd(1) qui utilise des drapeaux, des signes égal, des noms de chemin, des arguments et une perdrix dans un poirier, le tout avec un abandon sauvage.

Dans BSD et les versions ultérieures d'Unix, cela avait plus ou moins convergé vers des drapeaux à un seul caractère marqués d'un "-", mais cela a commencé à poser quelques problèmes :

  • les drapeaux peuvent être difficiles à retenir
  • parfois, vous vouliez en fait utiliser un nom avec '-'
  • et en particulier avec les outils GNU, des limitations ont commencé à être imposées par le nombre de drapeaux possibles. Les outils GNU ont donc ajouté des options longues GNU comme --output .

Ensuite, Sun a décidé que le "-" supplémentaire était redondant et a commencé à utiliser des drapeaux de style long avec des "-" simples.

Et c'est comme ça que c'est devenu le bordel qu'il est maintenant.


Linux
  1. Pourquoi j'utilise Linux pour gérer mon studio de yoga

  2. Comment utiliser la commande Tar sous Linux

  3. Linux - Pourquoi utilisons-nous Su - Et pas seulement Su ?

  4. Pourquoi ne puis-je pas utiliser Cd dans un script Bash ? ?

  5. Linux - Utilisation réelle de Tcp_defer_accept ?

Pourquoi j'utilise exa au lieu de ls sous Linux

Pourquoi j'utilise rxvt comme terminal

Qu'est-ce qu'une machine virtuelle et pourquoi l'utiliser ?

Les 10 meilleures raisons d'utiliser Linux

Pourquoi les nerds utilisent Linux

Linux vs Mac OS :15 raisons d'utiliser Linux au lieu de Mac OS