- is usually only followed by a single character. This is a heritage from Unix.
-- is usually followed by multiple characters (generally words or sentences), this comes from the GNU project. Usually commands (mainly GNU utilities) come with two parameter types,
--. For example, in the
ls command, the
-a and the
--all parameters do the exact same thing, but one is an entire word and another is a single letter.
Having an entire word as a parameter may be helpful for scripts, for example, because developers can read them and interpret the commands' parameters more easily.
In the other hand, having a single letter parameter may become handy when you are in a terminal and want to run commands faster.
If you're in doubt about the parameters a command can take, you can try a few commands like:
man command will give a more detailed explanation, but some commands do not have man (manual) pages.