यही मैं साथ आता हूं:
- 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हैं।