免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2403 | 回复: 8
打印 上一主题 下一主题

[文件目录] 如何实现一个文件扩展名监控的脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-06-02 15:09 |只看该作者 |倒序浏览
本帖最后由 nixcode 于 2016-06-02 15:10 编辑

需求
dirpath="/tmp/ /var/www/ /home/www/"
array=(txt jpg gif exe) // 等等的扩展名
从指定的(多)个目录$dirpath中匹配文件扩展,如果是array里的扩展名的文件,那么就直接删除 每秒执行一次

我自己写的可以匹配多个目录根扩展文件,但是不能删除 因为没有绝对路径

谢谢

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
2 [报告]
发表于 2016-06-02 15:46 |只看该作者
  1. dirpath="/tmp/test/a /tmp/test/b /tmp/test/c /tmp/test/d"
  2. find $dirpath -regex ".*\.\(txt\|jpg\|gif\|exe\)$" -exec rm -f {} \;
复制代码
这样测试可以

论坛徽章:
0
3 [报告]
发表于 2016-06-02 16:25 |只看该作者
回复 2# haooooaaa


    谢谢你  我下班回家了测试

求职 : 技术支持/维
论坛徽章:
0
4 [报告]
发表于 2016-06-02 16:44 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
5 [报告]
发表于 2016-06-02 16:46 |只看该作者
本帖最后由 我是一隻羊 于 2016-06-02 16:46 编辑
  1. rm -f {/tmp/,/var/www/,/home/www/}*.{txt,jpg,gif,exe}
复制代码

论坛徽章:
0
6 [报告]
发表于 2016-06-02 17:52 |只看该作者
本帖最后由 nixcode 于 2016-06-02 17:59 编辑

回复 5# 我是一隻羊


    谢谢你 这个可以 必须目录后面跟/ 但是看着好可怕 直接rm -rf, 代码简洁,也实现了功能,是不是我用while占了cpu跟进程变多

论坛徽章:
0
7 [报告]
发表于 2016-06-02 17:53 |只看该作者
回复 2# haooooaaa


    我刚才测试很 很好用,但是我while:;do command;sleep 2;done的话 查看ps aux 占了很多进程,也占了CPU,有没有省资源又可以实现的呢

论坛徽章:
0
8 [报告]
发表于 2016-06-03 09:44 |只看该作者
#!/bin/bash
  2 dirpath="/root/ /tmp/ "
  3 array="zip sh"
  4 for i in $dirpath
  5 do
  6 cd $i
  7 echo $i
  8 for line in $array
  9 do
10 num=`ls $i |grep "$line" `
11 echo $num
12 rm -f $num
13 done
14 done

论坛徽章:
0
9 [报告]
发表于 2016-06-03 10:21 |只看该作者
谢谢你们  都能用 我用了2楼的方法  感谢你们的帮助  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP