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