2017-12-27 15 views
0

Ich versuche, eine Aufgabe auszuführen, die den gesamten Inhalt meines Projekts fiolder löscht, ohne sie löschen Sie den Ordner selbst:ansible: Löschen Sie alle Dateien und Verzeichnisse in einem Ordner und nicht den Ordner selbst

mein Ordner : appfolder ---- enthält ----> file1, file2 ... fileN, directory1 ... directoryN

ich versucht habe ls, fileglob, zu verwenden, aber das hat nicht funktioniert richtig.

- name: delete old version files 
    file: 
    path: "{{ paths }}" 
    state: absent 
    with_filesglob: 
    - "{{paths}}deletes/*" 

auch mit Shell-Modul (nicht gut, weil es nicht Datei mit Sonderzeichen Namen gelöscht hat)

- shell: ls -1 /some/dir 
    register: contents 

- file: path=/some/dir/{{ item }} state=absent 
    with_items: {{ contents.stdout_lines }} 

eine bessere Lösung?

Antwort

1

Bis #18910 ist behoben (state=empty für Verzeichnisse), wir sind mit Workarounds stecken.

Hier ist einer von ihnen:

- name: Clean build folder 
    shell: cd /project/build && find -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf -- 
Verwandte Themen