1*Jump to [source](pacman.rs)*
2
3[`pacman`](https://wiki.archlinux.org/index.php/pacman) defines subcommands via flags.
4
5Here, `-S` is a short flag subcommand:
6```console
7$ pacman -S package
8Installing package...
9
10```
11
12Here `--sync` is a long flag subcommand:
13```console
14$ pacman --sync package
15Installing package...
16
17```
18
19Now the short flag subcommand (`-S`) with a long flag:
20```console
21$ pacman -S --search name
22Searching for name...
23
24```
25
26And the various forms of short flags that work:
27```console
28$ pacman -S -s name
29Searching for name...
30
31$ pacman -Ss name
32Searching for name...
33
34```
35*(users can "stack" short subcommands with short flags or with other short flag subcommands)*
36
37**NOTE:** Keep in mind that subcommands, flags, and long flags are *case sensitive*: `-Q` and `-q` are different flags/subcommands. For example, you can have both `-Q` subcommand and `-q` flag, and they will be properly disambiguated.
38Let's make a quick program to illustrate.
39