Istnieje kilka różnych wzorców opcji używanych historycznie w aplikacjach UNIX. Kilka starych, takich jak tar , używa schematu pozycyjnego:
argumenty opcji poleceń
jak na przykład używa tar
tar * coś * f „plik obsługiwany na ścieżkach plików„ * ”do manipulowania„ *
W pierwszej próbie uniknięcia pomyłki, tar i kilka innych programów ze starym stylem flagi-argumenty pozwoliły na rozgraniczenie flag kreskami, ale większość z nas, starzy faceci, po prostu to zignorowało.
Niektóre inne polecenia mają bardziej skomplikowaną składnię wiersza poleceń, na przykład dd (1), która używa flag, znaków równości, nazw ścieżek, argumentów i kuropatwy na drzewie gruszy, wszystkie z dzikim porzuceniem.
W BSD i późniejszych wersjach unixa konwergencja ta była mniej więcej zbieżna z flagami jednoznakowymi oznaczonymi „-”, ale zaczęło to przedstawiać kilka problemów:
- flagi mogą być trudne do zapamiętania
- czasami naprawdę chciałeś użyć nazwy z „-”
- a zwłaszcza w przypadku narzędzi GNU zaczęły obowiązywać ograniczenia wynikające z liczby możliwych flag. Dlatego narzędzia GNU dodały długie opcje GNU, takie jak
--output
.
Następnie Sun zdecydował, że dodatkowe „-” jest zbędne i zaczął używać flag o długim stylu z pojedynczymi „-s”.
I w ten sposób doszło do bałaganu, jakim jest teraz.