यही मैं साथ आता हूं:
- 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 }}"
सबसे पहले, हम find
सेटिंग के साथ निर्देशिका लिस्टिंग प्राप्त कर रहे हैं
file_type
करने के लिए any
है, तो हम करेंगे याद आती है नेस्टेड नहीं निर्देशिका और लिंक
hidden
करने के लिए yes
, तो हम छिपा फ़ाइलों को ना छोड़ें
- इसके अलावा, सेट न
recurse
करें yes
, क्योंकि यह न केवल अनावश्यक है, बल्कि निष्पादन समय भी बढ़ा सकता है।
फिर, हम file
मॉड्यूल के साथ उस सूची से गुजरते हैं । यह आउटपुट थोड़ा वर्बोज़ है, इसलिए loop_control.label
आउटपुट को सीमित करने में हमारी मदद करेगा (यह सलाह यहां मिली )।
लेकिन मैंने पिछले समाधान को कुछ धीमा पाया, क्योंकि यह सामग्री के माध्यम से पुनरावृत्त करता है, इसलिए मैं इसके साथ गया:
- 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 }}"
- के साथ निर्देशिका गुण प्राप्त करें
stat
- निर्देशिका हटाएं
- एक ही गुण के साथ निर्देशिका बनाएँ।
मेरे लिए इतना ही काफी था, लेकिन आप चाहें तो जोड़ सकते attributes
हैं।