Pants commands are known as _goals_, such as `
test` and `
To see the current list of goals, run:
You'll see more goals activated as you activate more [backends](🔗).
# Running goals
You can also run multiple goals in a single run of Pants, in which case they will run sequentially:
Finally, Pants supports running goals in a `
--loop`: in this mode, all goals specified will run sequentially, and then Pants will wait until a relevant file has changed to try running them again.
Ctrl+C` to exit the `
# Goal arguments
Some simple goals—such as the `
roots` goal—do not require arguments. But most goals require some arguments to work on.
For example, to run the `
count-loc` goal, which counts lines of code in your repository, you need to provide a set of files and/or targets to run on:
Quoting file patterns
Note the single-quotes around the file pattern `
'**'`. This is so that your shell doesn't attempt to expand the pattern, but instead passes it unaltered to Pants.
## File arguments vs. target arguments
Goal arguments can be of one of two types:
_File arguments_: file paths and/or globs.
_Target arguments_: addresses and/or address globs of [targets](🔗).
Typically you can just use file arguments, and not worry about targets.
Any goal can take either type of argument:
If a target argument is given, the goal acts on all the files in the matching targets.
If a file argument is given, Pants will map the file back to its containing target to read any necessary metadata.
For file arguments, use `
'*'` and `
'**'`, with the same semantics as the shell. Reminder: quote the argument if you want Pants to evaluate the glob, rather than your shell.
For target arguments, you can use:
dir::`, where `
::` means every target in the current directory and recursively in subdirectories.
dir:`, where `
:` means every target in that directory, but not subdirectories.
For example, `
./pants list ::` will find every target in your project.
Tip: advanced target selection, such as running over changed files
See [Advanced target selection](🔗) for alternative techniques to specify which files/targets to run on.
## Goal options
Many goals also have [options](🔗) to change how they behave.
To see if a goal has any options, run `
./pants help $goal` or `
./pants help-advanced $goal`. See [Command Line Help](🔗) for more information.
You can then use the option by prefixing it with the goal name:
You can also put the option after the file/target arguments:
As a shorthand, if you put the option after the goal and before the file/target arguments, you can leave off the goal name in the flag: