Существуют ли стандарты для параметров и аргументов командной строки Linux?

Это больше о вызове программы, чем о любом языке или парсере (хотя я уверен, что выбор библиотеки парсера может зависеть от этого). Видите ли, я использовал много утилит командной строки Linux. И есть некоторые очевидные закономерности; '-' предшествует одной букве для коротких вариантов, несколько вариантов, которые не принимают аргументы, могут быть объединены, '--' предшествует длинным версиям вариантов и так далее.

Однако в некоторых случаях капитализация используется для инвертирования варианта. Таким образом, '-d' может означать запуск в качестве демона, но '-D' будет означать не запуск как демон. (Почему бы просто не опустить опцию, если вы этого не хотите? Это никогда не было ясно, но на самом деле это довольно распространено,поэтому я полагаю, что должна быть какая-то причина.) Но в некоторых программах капитал является совершенно не связанным вариантом; если '-d' запускается как демон, '-D' может включать режим отладки. Есть ли за этим какой-то всеобъемлющий принцип, и какой из них лучше выбрать? Или мы просто имеем дело с «тем, что работает»?

Есть также некоторые команды, которые, в дополнение к (или вместо) опций с аргументами, просто принимают одинокие аргументы. cp является хорошим примером этого; помимо пары редко используемых переключателей, последний аргумент, который он получает, считается местом назначения, а любые аргументы между списком вариантов и назначением считаются источниками. Существует ли эмпирическое правило, когда «нормально» полагаться на такой порядок, вместо того, чтобы использовать явные флаги опций с аргументами?

50
задан DigitalMan 21 January 2012 в 11:17
поделиться