For which program/utility/script?
The flags are defined by the author(s) of the specific program/utility/script you are using.
For most programs that come with Linux you can type "man <program>" to get a manual for it that will tell you what each flag does.
For example if you're using the "ls" command and you type "man ls" it will contain information like:
-f do not sort, enable -aU, disable -lst
when showing file information for a symbolic link, show informa-
tion for the file the link references rather than for the link
However if you're using the "vim" command and you type "man vim" you'll see completely different meanings for these flags as used with that command:
-f Foreground. For the GUI version, Vim will not fork and
detach from the shell it was started in. On the Amiga, Vim
is not restarted to open a new window. This option should
be used when Vim is executed by a program that will wait
for the edit session to finish (e.g. mail). On the Amiga
the ":sh" and ":!" commands will not work.
Note that all programs do not have all flags. For example if you ran "man who" you'd see it does have flags but none of them are "-f" or "-L".
Also note that Linux is case sensitive so you might have for example both "-g" and "-G" with different meanings for the same command.