Ansible:删除文件夹内的所有文件和目录,而不是文件夹本身

时间:2017-12-27 09:48:09

标签: ansible yaml ansible-2.x

我正在尝试运行删除项目文件的所有内容的任务,而不删除文件夹本身:

我的文件夹:appFolder ----包含----> file1,file2 ... fileN,directory1 ... directoryN

我尝试使用 ls fileGlob ,但这种方法无法正常使用。

- name: delete old version files
  file:
   path: "{{ paths }}"
   state: absent
  with_filesglob:
   - "{{paths}}deletes/*"

还有shell模块(不好,因为它没有删除带有特殊字符名称的文件)

- shell: ls -1 /some/dir
  register: contents

- file: path=/some/dir/{{ item }} state=absent
  with_items: {{ contents.stdout_lines }}

更好的解决方案?

1 个答案:

答案 0 :(得分:1)

在修复#18910之前(dirs为state=empty),我们会遇到解决方法。

以下是其中一个:

- name: Clean build folder
  shell: cd /project/build && find -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf --