2016-06-21 142 views
3

是否可以编辑find module命令以查找remotebackup目录中的X个最新文件夹?谢谢Ansible,删除X最新文件夹以外的所有内容

- find: paths="{{ remotebackupdir }}" age="**find_oldest_folders_except_X_newer**" recurse=no 
    register: result 

    - debug: var=result.files 

    - file: path: "{{ remotebackupdir }}" state: absent 
    with_items: result.files 

回答

3

我做了类似的事情。

尝试是这样的:(在目录中执行,其中文件是要删除)反向日期顺序

- name: Get first 4 files 
    command: ls -trd -1 {{path}}/* | head -4 
    register: filenames 

- name: actually delete files 
    file: {{path}}/{{ item }} state=absent 
    with_items: filenames.stdout_lines 

基本上-tr名单的事情,和-1确保一切都在一行,-d只表示目录

+0

请注意,如果您没有“正常”文件名,[解析'ls'可能导致问题](http://mywiki.wooledge.org/ParsingLs),其中如果你可能能够用'find'破解一些东西,或者你可以在perl/python/ruby​​中写一个自定义脚本。但是如果你能够很好地控制将要在这里生存的文件,那么这将会很好。 –

相关问题