--- layout: "docs" page_title: "Command: apply" sidebar_current: "docs-commands-apply" description: |- The `terraform apply` command is used to apply the changes required to reach the desired state of the configuration, or the pre-determined set of actions generated by a `terraform plan` execution plan. --- # Command: apply The `terraform apply` command is used to apply the changes required to reach the desired state of the configuration, or the pre-determined set of actions generated by a `terraform plan` execution plan. ## Usage Usage: `terraform apply [options] [dir-or-plan]` By default, `apply` scans the current directory for the configuration and applies the changes appropriately. However, a path to another configuration or an execution plan can be provided. Execution plans can be used to only execute a pre-determined set of actions. The `dir` argument can also be a [module source](/docs/modules/index.html). In this case, `apply` behaves as though `init` were called with that argument followed by an `apply` in the current directory. This is meant as a shortcut for getting started. The command-line flags are all optional. The list of available flags are: * `-backup=path` - Path to the backup file. Defaults to `-state-out` with the ".backup" extension. Disabled by setting to "-". * `-input=true` - Ask for input for variables if not directly set. * `-no-color` - Disables output with coloring. * `-refresh=true` - Update the state for each resource prior to planning and applying. This has no effect if a plan file is given directly to apply. * `-state=path` - Path to the state file. Defaults to "terraform.tfstate". * `-state-out=path` - Path to write updated state file. By default, the `-state` path will be used. * `-target=resource` - A [Resource Address](/docs/internals/resource-addressing.html) to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times. * `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag can be set multiple times. * `-var-file=foo` - Set variables in the Terraform configuration from a file. If "terraform.tfvars" is present, it will be automatically loaded first. Any files specified by `-var-file` override any values in a "terraform.tfvars".