Um eine tar - Datei für ein Verzeichnis zu erstellen, den tar
Befehl mit compress
, verbose
und file
Optionen können somit werden eingegeben:
$ tar -cvf my.tar my_directory/
Aber es funktioniert auch so:
$ tar cvf my.tar my_directory/
Das heißt, ohne den Bindestrich (-) vor den Optionen. Warum würden Sie jemals einen Bindestrich (-) an die Optionsliste übergeben?
Antworten:
Es gibt verschiedene Muster für Optionen, die in der Vergangenheit in UNIX-Anwendungen verwendet wurden. Einige alte, wie Teer , verwenden ein Positionsschema:
wie zum Beispiel Teer verwendet
In einem ersten Versuch, die Verwirrung zu vermeiden, erlaubten es tar und einige andere Programme mit dem alten Flags-Argument-Stil, die Flags mit Bindestrichen abzugrenzen, aber die meisten von uns Alten ignorierten dies einfach.
Einige andere Befehle haben eine kompliziertere Befehlszeilensyntax, wie dd (1), bei der Flags, Gleichheitszeichen, Pfadnamen, Argumente und ein Rebhuhn in einem Birnbaum verwendet werden.
In BSD und späteren Versionen von Unix war dies mehr oder weniger konvergiert mit mit '-' gekennzeichneten Einzelzeichen-Flags, was jedoch einige Probleme aufwirft:
--output
.Dann entschied Sun, dass das zusätzliche '-' überflüssig war, und begann mit der Verwendung von Long-Style-Flags mit Single-Flags.
Und so wurde es zu dem Chaos, das es jetzt ist.
quelle
-
. Ist das von Sun?Sie können tar-Optionen in der Standard-Unix-Art
tar -c -f foo -v -B file1 file2 file3
und Weise angeben, in der Sie den Bindestrich benötigen, um zwischen Optionen und Parametern oder den Dateinamen am Ende der Befehlszeile zu unterscheiden. Sie können auch alle Optionen im ersten Argument zusammenfassen. In diesem Fall ist der Bindestrich optional.Dann gibt es einen
ps
Punkt, an dem Sie die Bindestriche verwenden, wenn Sie die SysV-ish-Optionen verwenden, und sie weglassen, wenn Sie BSD-ish-Optionen verwenden, nur um die Dinge verwirrender zu machen.Und lassen Sie uns nicht einmal darüber reden
find
.quelle
Der Bindestrich wird verwendet, um zwischen den Namen und Werten von Optionsparametern zu unterscheiden. Ich denke, es ist eher eine Standardkonvention.
quelle
best-practice
Tag hinzufügen, weil ich dachte, dass es darauf ankommt.Es gibt bis zu vier Konventionen für die Verwendung von Unix-Befehlszeilenoptionen:
Beispielsweise:
quelle
Mit vorangestelltem Minuszeichen / Bindestrich (-) müssen Sie die Optionen in der richtigen Reihenfolge halten. Ohne Minus kann sich die Reihenfolge Ihrer Wahl ändern.
Beispielsweise:
quelle
f
, die ein Argument annehmen, dessen Reihenfolge von Bedeutung ist. Siehe unix.stackexchange.com/a/239120/3169