Обробка командного рядка визначається у вихідному коді програми, яка стала конкретною командою.
Найчастіше, група команд використовує певну бібліотеку обробки командного рядка (GNU getargs, або у випадку Perl-скриптів GetOpts :: Long є прикладами таких), хоча те, чи була обробка командного рядка вручну, чи використовувалася якась конкретна бібліотека повністю залежить від команди.
Отже, можливості обробки командного рядка (наприклад, підтримка переупорядкування, використання --для розмежування кінця прапорів, складання -a -bв -abтощо) повністю залежать від вихідного коду окремих додатків та / або бібліотек, які вони використовують.
Конкретна закономірність, яку ви відзначили, ймовірно, пов'язана з різними бібліотеками обробки командного рядка (або індивідуальним ручним прокатом коду обробки аргументів, що використовується розробниками) між Linux з його коренями GNU та OSX (IIRC, вихід BSD, але не впевнений)