Существует несколько различных шаблонов параметров, которые исторически использовались в приложениях UNIX. Несколько старых, например tar , используют позиционную схему:
параметры команды аргументы
как например tar использует
tar * кое-что * f "файл оперирует" * "путями файлов для манипулирования" *
В первой попытке избежать путаницы tar и несколько других программ со старым стилем флагов-аргументов позволили разделять флаги тире, но большинство из нас, старых парней, просто игнорировали это.
Некоторые другие команды имеют более сложный синтаксис командной строки, например, dd (1), который использует флаги, знаки равенства, имена путей, аргументы и куропатку в груше, и все это с дикой непринужденностью.
В BSD и более поздних версиях Unix это более или менее сходилось к односимвольным флагам, помеченным '-', но это стало представлять пару проблем:
- флаги могут быть трудно запомнить
- иногда вы действительно хотели использовать имя с '-'
- и особенно с инструментами GNU, стали налагаться ограничения на количество возможных флагов. Так что инструменты GNU добавили в GNU длинные опции, такие как
--output
.
Затем Sun решила, что лишние '-' являются избыточными, и начала использовать флаги в длинном стиле с одиночными '-s.
И вот как это стало беспорядок это сейчас.