POSIX saysutility_name[-a][-b][-c option_argument]    [-d|-e][-f[option_argument]][operand...]...  The arguments following the last options and option-arguments are  named operands.Does it mean that by POSIX standard, the operands to a utility should always appear after all the options to the utility?Why do some commands or utilities go wrong if running it without following the rule, while others don't? For example:In the manpage of ls:SYNOPSIS       ls [OPTION]... [FILE]...it shows that [FILE]... appears after [OPTION]....But it seems that the operands can appear before the options. E.g.,ls . -a works the same as ls -a .For bash's builtin read, if I specify an option after an operand, it will be wrong:$ read tt -u 5 5 < /tmp/ttbash: read: `-u': not a valid identifier $ read -u 5  tt 5</tmp/tt $ echo $tt 1 2 3 4 5
Should the operands to a utility always appear after all the options to the utility?
bash;posix;options