Jakie są różnice między „-” a „-” w poleceniach?

Odpowiedzi:

15

To kwestia konwencji. Standardowe programy POSIX zwykle mają tylko opcje jednego znaku i wszystkie są poprzedzone jednym łącznikiem. Dłuższe wersje są ulepszeniem GNU dla przejrzystości, o ile wiem, i zwykle są poprzedzone podwójnymi myślnikami. Możesz to zobaczyć w bibliotekach i programach używanych do parsowania opcji - getopti gnu-getoptodpowiednio. Programy niezgodne z GNU i niezgodne z POSIX mogą robić coś innego. Zauważ, że tak naprawdę nie możesz być pewien, że długa forma argumentu może być taka sama w zależności od programu. -fzwykle oznacza --force, ale nie z apt-get install(powszechne nieporozumienie). -vmoże oznaczać wersję - zwykle lub --verboseitd. Sprawdź strony podręcznika lub inną dokumentację, aby się upewnić. Zobacz takżeArtykuł w Wikipedii na temat getopt . Wszystko to wyprzedza Linuksa o dekadę lub dłużej.

ddjest przykładem na POSIX standardowego narzędzia , które nie ma żadnych opcji łącznikiem w ogóle . findto klasyczny przykład standardowego narzędzia POSIX, które ma opcje słów z pojedynczymi myślnikami - prawie wszystkie findopcje mają wiele znaków. psobsługuje wiele stylów opcji:

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 obsługuje również wiele stylów opcji.

Jeśli chcesz mieć pewność, że skrypty będą uruchamiane w kompatybilnych środowiskach, wybierz długie opcje skryptów - poprawa przejrzystości jest błogosławieństwem podczas debugowania. Ze względu na przenośność preferowane są krótkie opcje.

muru
źródło
Naprawdę miła odpowiedź. Dzięki.
Peng Zhang,
4

Zwykle - opcje można łączyć ze sobą, na przykład pacman -Syurównoważne pacman -S -y -u, i - opcje zwykle przyjmują parametr jak w./configure --prefix=/usr

Hanetzer
źródło