Itulah yang saya kemukakan:
- name: Get directory listing
find:
path: "{{ directory }}"
file_type: any
hidden: yes
register: directory_content_result
- name: Remove directory content
file:
path: "{{ item.path }}"
state: absent
with_items: "{{ directory_content_result.files }}"
loop_control:
label: "{{ item.path }}"
Pertama, kita mendapatkan daftar direktori find
, pengaturan
file_type
untuk any
, jadi kami tidak akan melewatkan direktori dan tautan yang bersarang
hidden
untuk yes
, jadi kami tidak melewatkan file tersembunyi
- juga, jangan diatur
recurse
ke yes
, karena tidak hanya tidak perlu, tetapi dapat menambah waktu eksekusi.
Kemudian, kita melihat daftar itu dengan file
modul. Outputnya sedikit bertele-tele, jadi loop_control.label
akan membantu kami membatasi output (temukan saran ini di sini ).
Tetapi saya menemukan solusi sebelumnya agak lambat, karena iterates melalui konten, jadi saya pergi dengan:
- name: Get directory stats
stat:
path: "{{ directory }}"
register: directory_stat
- name: Delete directory
file:
path: "{{ directory }}"
state: absent
- name: Create directory
file:
path: "{{ directory }}"
state: directory
owner: "{{ directory_stat.stat.pw_name }}"
group: "{{ directory_stat.stat.gr_name }}"
mode: "{{ directory_stat.stat.mode }}"
- dapatkan properti direktori dengan
stat
- hapus direktori
- buat ulang direktori dengan properti yang sama.
Itu sudah cukup bagi saya, tetapi Anda dapat menambahkan attributes
juga, jika Anda mau.