Ansible copy-如果dest目录以带或不带结尾,有什么区别吗/

Ansible copy-如果dest目录以带或不带结尾,有什么区别吗/,ansible,copy,Ansible,Copy,我正在进行ansible远程复制,对dest有一个问题,如果dest以/结尾,有什么区别吗 目的地:/tmp/dest 目的地:/tmp/dest/ 我试过带/和不带/的,看起来他们两个都复制了 - name: copy the properties file to dest copy: src: /tmp/src/{{ item }} dest: /tmp/dest remote_src: yes with_ite

我正在进行ansible远程复制,对dest有一个问题,如果dest以/结尾,有什么区别吗

  • 目的地:/tmp/dest
  • 目的地:/tmp/dest/
  • 我试过带/和不带/的,看起来他们两个都复制了

        - name: copy the properties file to dest
          copy:
            src: /tmp/src/{{ item }}
            dest: /tmp/dest
            remote_src: yes
          with_items:
            - runtime.properties
            - default.properties
    

    如果要复制目录,则目标路径是否以
    /
    结尾并不重要。在这两种情况下,Ansible首先确保目标目录存在,然后将源目录复制到目标目录中。也就是说,如果:

    - copy:
        src: src_dir
        dest: /tmp/dest/
    
    或:

    在这两种情况下,如果不存在,Ansible将首先创建
    /tmp/dest
    ,然后创建
    /tmp/dest/src_dir
    ,并用
    src_dir
    的内容填充它

    但是,如果要复制一个文件,情况会有所不同。如果目标目标
    /tmp/dest
    不存在,此剧本将创建一个名为
    /tmp/dest
    的文件:

    - copy:
        src: src_file
        dest: /tmp/dest
    
    但是,如果向目标添加一个尾随路径,Ansible将首先创建目录
    /tmp/dest
    ,然后创建文件
    /tmp/dest/src\u文件

    - copy:
        src: src_file
        dest: /tmp/dest/
    

    如果名为
    /tmp/dest
    的目录已存在,则上述两个示例将执行相同的操作(创建
    /tmp/dest/src_文件
    )。

    非常感谢您的详细解释!!但是,还有一个关于复制文件覆盖的问题/tmp/dest已经存在,我想将file1复制到dest,如果file1已经存在于/tmp/dest中,那么覆盖它。我已经给出了force:是的,对于dest,我应该使用/tmp/dest还是/tmp/dest/<代码>-复制:src:src_dir dest:/tmp/dest/#dest:/tmp/dest force:yes
    /tmp/dest/
    --带尾随斜杠--始终指目录。如果目标是文件,则不会使用尾随斜杠。
    - copy:
        src: src_file
        dest: /tmp/dest/