Каковы различия между «-» и «-» в командах?

13

Я часто вижу одну -или две черты, --за которыми следуют команды linux или другие установленные программы linux.

Каковы различия между одинарной и двойной тире?

Это просто аббревиатура? Например, -vзначит --verboseбольшую часть времени.

Пэн Чжан
источник

Ответы:

15

Это вопрос соглашения. Стандартные программы POSIX обычно имеют только односимвольные опции, и все они имеют префикс с одним дефисом. Насколько я могу судить, более длинные версии являются улучшением GNU для ясности и обычно имеют префикс с двойными дефисами. Вы можете увидеть это в библиотеках и программах, используемых для разбора опций - getoptи gnu-getoptсоответственно. Программы, не совместимые с GNU и POSIX, могут делать что-то совсем другое. Обратите внимание, что вы действительно не можете быть уверены, что длинная форма аргумента может быть одинаковой для разных программ. -fобычно означает --force, но не с apt-get install(распространенное заблуждение). -vможет означать версию - обычно или --verbose, и так далее. Проверьте man-страницы или другую документацию, чтобы быть уверенным. Также посмотрите наСтатья в Википедии о getopt . Все это предшествует Linux на десять и более лет.

ddявляется примером стандартной утилиты POSIX , которая не имеет каких - либо дефис опции на всех . findКлассический пример стандартной утилиты POSIX, в которой есть опции слова с одиночными дефисами - почти все findопции имеют длину в несколько символов. psподдерживает несколько вариантов стилей:

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 также поддерживает несколько стилей опций.

С точки зрения использования, предпочитайте длинные опции в сценариях, если вы можете быть уверены, что сценарии будут выполняться в совместимых средах - улучшение в ясности является благословением при отладке. Для мобильности предпочтительны короткие варианты.

Мур
источник
Действительно хороший ответ. Спасибо.
Пэн Чжан
4

Обычно - параметры могут быть объединены в цепочку, например pacman -Syuэквивалентны pacman -S -y -u, и - параметры обычно принимают параметр, как в./configure --prefix=/usr

hanetzer
источник