add
target...
Add targets to the source state. If any target is already in the source state, then its source state is replaced with its current state in the destination directory.
Flags
-a
, --autotemplate
Automatically generate a template by replacing strings that match variable
values from the data
section of the config file with their respective config
names as a template string. Longer substitutions occur before shorter ones.
This implies the --template
option.
Warning
--autotemplate
uses a greedy algorithm which occasionally generates
templates with unwanted variable substitutions. Carefully review any
templates it generates.
--create
Add files that should exist, irrespective of their contents.
--encrypt
Configuration:
add.encrypt
Encrypt files using the defined encryption method.
--exact
Set the exact
attribute on added directories.
--follow
If the last part of a target is a symlink, add the target of the symlink instead of the symlink itself.
-p
, --prompt
Interactively prompt before adding each file.
-q
, --quiet
Suppress warnings about adding ignored entries.
--secrets
ignore
|warning
|error
Configuration:
add.secrets
Action to take when a secret is found when adding a file. The default is
warning
.
-T
, --template
Set the template
attribute on added files and symlinks.
--template-symlinks
Configuration:
add.templateSymlinks
When adding symlink to an absolute path in the source directory or destination
directory, create a symlink template with .chezmoi.sourceDir
or
.chezmoi.homeDir
. This is useful for creating portable absolute symlinks.
Common flags
-x
, --exclude
types
Exclude target state entries of specific types.
The default is none
.
Types can be explicitly included with the --include
flag.
Example
--exclude=scripts
will cause the command to not run scripts and
--exclude=encrypted
will exclude encrypted files.
-f
, --force
Add targets, even if doing so would cause a source template to be overwritten.
-i
, --include
types
Include target state entries of specific types.
The default is all
.
Types can be explicitly excluded with the --exclude
flag.
Example
--include=files
specifies all files.
-r
, --recursive
Recurse into subdirectories.
Enabled by default. Can be disabled with --recursive=false
.
Examples
$ chezmoi add ~/.bashrc
$ chezmoi add ~/.gitconfig --template
$ chezmoi add ~/.ssh/id_rsa --encrypt
$ chezmoi add ~/.vim --recursive
$ chezmoi add ~/.oh-my-zsh --exact --recursive
Notes
Bug
chezmoi add
will fail if the entry being added is in a directory
implicitly created by an
external.
See this GitHub issue for
details.