我有如下的目录结构,想要使用 ansible 而不是全部来获取特定的子目录文件。
/mnt/server1 ->
----> yyy.deb
----> /mnt/server1/All/tttsss.deb
----> /mnt/server1/HS-CLONE/gggg.deb
----> /mnt/server1/HS-TEST/kkkk.deb
我只需要查找和目录.deb
下的文件。我不需要所有其他文件。/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb
当我尝试使用以下逻辑时,父目录文件yyy.deb
也会作为输出出现。
- name: Ansible find files in subdirectory examples
find:
paths: /mnt/server1
file_type: file
recurse: yes
use_regex: yes
patterns:
- 'All'
- "HS-CLONE"
- '.*deb$'
register: files_matched_subdirectory
采用上述逻辑输出为:
输出:(不要使用 Playbook 中的排除选项)
yyy.deb -> This file name may vary.
/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb
预期输出应该是:(除了有通用模式来解决我的问题)
/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb
答案1
您应该明确指定所需的路径。如果您不想搜索路径/mnt/server1
,而只想搜索特定的子目录,请列出它们。
- name: Ansible find files in subdirectory examples
find:
paths:
- /mnt/server1/All
- /mnt/server1/HS-CLONE
file_type: file
recurse: yes
use_regex: yes
patterns:
- '.*deb$'