Over time, there has evolved a loose standard for the meanings of command-line option flags. The GNU utilities conform more closely to this "standard" than older UNIX utilities.
Traditionally, UNIX command-line options consist of a dash, followed by one or more lowercase letters. The GNU utilities added a double-dash, followed by a complete word or compound word.
The two most widely-accepted options are:
Help
Give usage message and exit.
Version
Show program version and exit.
Other common options are:
All
Show all information or operate on all arguments.
List
List files or arguments without taking other action.
Quiet
Suppress stdout.
Recursive
Operate recursively (down directory tree).
Verbose
Output additional information to stdout or stderr.
Compress
Apply compression (usually gzip
).
However:
File
Filename follows.
Force
Force overwrite of target file(s).
Caution: Many UNIX and Linux utilities deviate from this "standard," so it is dangerous to assume that a given option will behave in a standard way. Always check the man page for the command in question when in doubt.
A complete table of recommended options for the GNU utilities is available at the GNU standards page.
See: https://www.gnu.org/prep/standards/
Bash itself has a number of command-line options. Here are some of the more useful ones.
Read commands from the following string and assign any arguments to the positional parameters.
bash$ bash -c 'set a b c d; IFS="+-;"; echo "$*"' a+b+c+d
End of options.
Anything further on the command line is an argument, not an option.