Ansible,删除X最新文件夹以外的所有内容
问题描述:
是否可以编辑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
答
我做了类似的事情。
尝试是这样的:(在目录中执行,其中文件是要删除)反向日期顺序
- 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只表示目录
请注意,如果您没有“正常”文件名,[解析'ls'可能导致问题](http://mywiki.wooledge.org/ParsingLs),其中如果你可能能够用'find'破解一些东西,或者你可以在perl/python/ruby中写一个自定义脚本。但是如果你能够很好地控制将要在这里生存的文件,那么这将会很好。 –