【问题标题】:ansible find (-or linux) for directories with set depthansible find (-or linux) 用于设置深度的目录
【发布时间】:2021-12-13 02:55:17
【问题描述】:

我正在尝试使用 Ansible find 内置函数来创建类似于

find /home/user/data -maxdepth 2 -type d -name 'mul' -or -name 'sqr'

其中/home/user/data 有文件夹a,b,c... 并且每个文件夹都可以是mul- 或sqr-目录中的一个/一个/两个。

它适用于那个 Linux 查询和我尝试过的 Ansible

   - name: find fields
      find:
        depth: 2
        paths: "/home/user/data"
        file_type: directory
        patterns:
          - 'mul'
          - 'sqr'
      register: fields
  - name: debug1
      debug:
        msg: " myitem: {{ item }}"
      loop: "{{ fields.files | map(attribute='path') }}"

但我的调试输出是空的。 我可以删除patterns 并设置depth: 1,从而生成一个列表abc,然后遍历这些列表以找到mulsqr,但如果这些列表需要花费不必要的时间变长。

【问题讨论】:

  • 设置recurse: yes。这是nodefault

标签: ansible find depth


【解决方案1】:

正如 Vladimir 所说,设置 recurse: yes 可以解决问题。 我仍然想知道,为什么在设置depth: 2 时,recurse: yes 没有被暗示。 这是完整的示例:

   - name: find fields
      find:
        depth: 2
        paths: "/home/user/data"
        file_type: directory
        recurse: yes
        patterns:
          - 'mul'
          - 'sqr'
      register: fields
  - name: debug1
      debug:
        msg: " myitem: {{ item }}"
      loop: "{{ fields.files | map(attribute='path') }}"

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 2018-05-06
    • 2015-09-26
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2018-02-02
    相关资源
    最近更新 更多