find与ls的条件用法,定时删除文件

小豆丁 1年前 ⋅ 202 阅读

1、删除5天前的文件

find /apps/svr/jenkins_bak/*  -mtime +5 -exec rm -rf {} \;

2、保留最新的5个

ls -1t /apps/svr/jenkins_bak/deerma_aliiot/* | awk 'NR>5 {print "rm -f "$0}' | bash

3、前两条结合起来:文件大于5个,删除5天前文件

find /apps/svr/jenkins_bak/deerma_aliiot/* -mtime +5 | awk 'NR>5 {print "rm -f "$0}' | bash

4、优化,按文件夹删除

find /web/logs/deerma_schedulerx/* -mtime +3 -name "*" | awk '{print "rm -rf "$0}'  | bash

5、优化,限定文件类型为文件夹,且数量大于3

find /web/logs/*/* -name "*" -type d | awk 'NR>3 {print "rm -rf "$0}'  | bash

6、注意事项: 进行 NR 数量判断的时候条件对比

(1)最后*目录的符合条件数量
find /web/logs/*/* -name "*" -type d | awk 'NR>3 {print "rm -rf "$0}'  | bash
(2)包含二级*目录的符合条件数量
find /web/logs/*/* -name "*" -type f | awk 'NR>3 {print "rm -rf "$0}'  | bash

全部评论: 0

    我有话说: