Ben de bunu buluyorum:
- 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 }}"
İlk olarak, birlikte, rehber listeleme alıyoruz find
, ayar
file_type
için any
, iç içe geçmiş dizinleri ve bağlantıları kaçırmazdık
hidden
için yes
gizli dosyaları atlamıyoruz
- Ayrıca, set yok
recurse
etmek yes
değil sadece gereksiz olmakla yürütme süresini uzatabilir beri.
Sonra bu listeyi file
modülle inceliyoruz. Çıktısı biraz ayrıntılı, bu nedenle loop_control.label
çıktıyı sınırlandırmamıza yardımcı olacak (bu tavsiyeyi burada bulabilirsiniz ).
Ancak, içeriğin üzerinden yinelendiği için önceki çözümü biraz yavaş buldum, bu yüzden gittim:
- 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 }}"
- ile dizin özelliklerini al
stat
- dizini sil
- aynı özelliklere sahip dizini yeniden oluşturun.
Bu benim için yeterliydi, ama isterseniz de ekleyebilirsiniz attributes
.