下面有一个目录,/var/test1
内容如下:
.
..
.git
.gitignore
file1
file2
并且我想将其复制到/var/test2
具有预先存在的内容的其他位置:
.
..
file1
如果我使用 Ansible copy
:
- copy:
# note the trailing `/` at `src: /var/test1/` in order to copy the contents
src: /var/test1/
dest: /var/test2
它将file1
取代/var/test2
如何复制目录内容而不替换目标文件?
答案1
默认情况下,ansible 强制覆盖,也许禁用它会对你的情况有所帮助(force=no)。
答案2
你可能想使用同步_模块. 它有delete
选项:
删除目标路径中不存在的文件(传输后,而不是传输前)。此选项要求 recursive=yes。
- synchronize:
src: /var/test1
dest: /var/test2
recursive: True
delete: False