それが私が思いついたものです:
- 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
、必要に応じて追加することもできます。