如何使用Ansible Playbook查找所有者名称以a开头的文件
Ansible Playbook 调整方案
你现有代码存在两个问题:一是YAML缩进不规范,二是没有添加所有者过滤逻辑,调整后可实现筛选指定目录下所有者以a开头的文件,完整示例如下:
- name: 扫描/tmp目录下的所有文件 find: paths: "/tmp" # 若不需要按6天ctime过滤可删除以下两个参数 age: "6d" age_stamp: ctime file_type: any patterns: "*" # 若需要递归扫描子目录可改为yes recurse: no register: scan_output - name: 输出所有者以a开头的文件路径 debug: msg: "匹配文件:{{ item.path }}" loop: "{{ scan_output.files }}" # 核心过滤逻辑:匹配所有者名称以a开头的文件 when: item.pw_name is match('^a.*')
调整说明
- 修正了原代码YAML缩进错误,避免执行时报语法问题
find模块返回的每个文件条目都包含pw_name字段,对应文件所有者的用户名,通过Jinja2的match过滤器搭配正则^a.*即可筛选出所有者名称以a开头的文件- 若需要匹配不区分大小写的a(同时匹配大写A开头的所有者),可把过滤条件改为
item.pw_name is match('^a.*', ignorecase=True)
内容的提问来源于stack exchange,提问作者Andrés
相关产品推荐
相关产品推荐

