作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Ansible playbook 从远程主机的多个目录中删除剩余文件。
/some_dir
├── dir_1
│ └── file_A
├── dir_2
│ └── file_B
└── dir_3
└── file_C
例如,如果我使用 shell 脚本,我会使用像 rm -rf/some_dir/dir_*/file_*
这样的简单 glob,它足够具体。不过,我想坚持使用 best Ansible practices™,所以我决定结合使用 find
和 file
模块。
tasks:
- name: Find files to remove by patterns
find:
paths: "/some_dir/dir_*/"
patterns: "file_*"
但是,通配符似乎在find
的paths
中不起作用,它们被视为文字。
有什么方法可以解决这些限制?
注意事项:
some_dir
中递归搜索 file_[A-Z]
,但它可能会捕获 /some_dir/very_important_stuff/file_Q
(如果一切都失败了,我将采用该解决方案)find
任务:在 some_dir
中找到所有 dir_*
,然后将它们用作列表paths
来查找 file_*
,但是由于这个任务是一个更大的真实剧本的一部分,所以它太复杂了,无法在任意位置使用通配符的路径位置(/some_dir/dir_*/other/cruft/subdirs/*.cache
)。最佳答案
直接使用 ansible 是不可能的。您必须使用 shell
命令:
---
- name: TEST
hosts: host1
gather_facts: False
tasks:
- name: shell
shell: "ls -1 /some_dir/dir_*/*"
register: result
- name: debug
debug:
var: result.stdout
关于ansible - 如何在 Ansible `find` 模块中使用通配符路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54278283/
我是一名优秀的程序员,十分优秀!