Pour créer un fichier tar pour un répertoire, vous pouvez saisir la tar
commande avec compress
, verbose
et les file
options suivantes:
$ tar -cvf my.tar my_directory/
Mais cela fonctionne aussi pour le faire de cette façon:
$ tar cvf my.tar my_directory/
C'est-à-dire sans le tiret (-) précédant les options. Pourquoi voudriez-vous jamais passer un tiret (-) à la liste des options?
Réponses:
Il existe plusieurs modèles différents pour les options utilisées historiquement dans les applications UNIX. Plusieurs anciens, comme tar , utilisent un schéma de position:
comme par exemple tar utilise
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, l'ignoraient simplement.
Certaines autres commandes ont une syntaxe de ligne de commande plus complexe, comme dd (1), qui utilise des drapeaux, des signes identiques, des noms de chemins, des arguments et une perdrix dans un arbre à poires, le tout avec un abandon sauvage.
Dans BSD et les versions ultérieures d'Unix, cela avait plus ou moins convergé vers des drapeaux à caractère unique marqués avec '-', mais cela commençait à poser quelques problèmes:
--output
.Sun a alors décidé que le supplément "-" était redondant et a commencé à utiliser des drapeaux de style long avec des "-" simples.
Et c'est comme ça que le désordre est arrivé maintenant.
la source
-
. Est-ce de Sun?Vous pouvez donner des options tar de la même manière qu'unix,
tar -c -f foo -v -B file1 file2 file3
le tiret permettant de différencier les options et les paramètres ou les noms de fichier à la fin de la ligne de commande. Ou vous pouvez regrouper toutes les options dans le premier argument, auquel cas le tiret est facultatif.Ensuite
ps
, vous pouvez utiliser les tirets si vous utilisez les options SysV-ish et les laisser de côté si vous utilisez les options BSD-ish, simplement pour rendre les choses plus confuses.Et laisse même pas parler
find
.la source
Le tiret sert à distinguer les noms et les valeurs de paramètres d’options. Je suppose que c'est plus une convention standard.
la source
best-practice
balise parce que je pensais que cela pouvait en résulter.Il existe quatre conventions d'utilisation des options de ligne de commande unix:
Par exemple:
la source
Avec le signe moins / tiret (-), vous devez conserver les options dans un ordre précis. Sans ordre moins de votre option peut changer.
Par exemple:
la source
f
celui-là qui prennent un argument dont l'ordre est important. Voir unix.stackexchange.com/a/239120/3169