> getopt_long(3) в BSD есть уже очень давно, но вот полезность этой хрени для большинства утилит весьма сомнительна.Это вы зря, имхо. У тех же rsync или tar есть масса опций, которые вообще не имеют однобуквенных аналогов. Если лично вы такими опциями не пользуетесь, то это еще не значит, что они не нужны.
Плюс еще есть такая вещь, как мнемоника: желательно, чтобы обозначения были красноречивы или самоочевидны.
У того же tar, к примеру, есть опция -r, она же --append. Почему "r", если это "append"? А потому, что "a" и "A" уже заняты другими опциями, и тут мы натыкаемся на нехватку букв латинского алфавита даже в обоих регистрах. В результате опция оказывается неочевидной и труднозапоминаемой. Проще запомнить --append, чем -r.
У разных утилит одна и та же буковка в опциях может обозначать совершенно разные вещи, но длинные опции --recursive, --force или --invert всегда красноречивы и однозначны. Вам иной раз может быть проще написать --recursive или --reverse, чем снова и снова вспоминать, какой из них соответствуют -r, а какой -R.
Да и читаются скрипты, в которых опции вписаны как --long-options, а не как -o, намного проще и быстрее.
Тут отчасти вопрос эргономики. Но почему эргономично - это не труъ?