Chinaunix

标题: 如何实现一个文件扩展名监控的脚本 [打印本页]

作者: nixcode    时间: 2016-06-02 15:09
标题: 如何实现一个文件扩展名监控的脚本
本帖最后由 nixcode 于 2016-06-02 15:10 编辑

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

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

谢谢
作者: haooooaaa    时间: 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 {} \;
复制代码
这样测试可以
作者: nixcode    时间: 2016-06-02 16:25
回复 2# haooooaaa


    谢谢你  我下班回家了测试
作者: 99超人    时间: 2016-06-02 16:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 我是一隻羊    时间: 2016-06-02 16:46
本帖最后由 我是一隻羊 于 2016-06-02 16:46 编辑
  1. rm -f {/tmp/,/var/www/,/home/www/}*.{txt,jpg,gif,exe}
复制代码

作者: nixcode    时间: 2016-06-02 17:52
本帖最后由 nixcode 于 2016-06-02 17:59 编辑

回复 5# 我是一隻羊


    谢谢你 这个可以 必须目录后面跟/ 但是看着好可怕 直接rm -rf, 代码简洁,也实现了功能,是不是我用while占了cpu跟进程变多
作者: nixcode    时间: 2016-06-02 17:53
回复 2# haooooaaa


    我刚才测试很 很好用,但是我while:;do command;sleep 2;done的话 查看ps aux 占了很多进程,也占了CPU,有没有省资源又可以实现的呢
作者: 孤独并不是独立    时间: 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
作者: nixcode    时间: 2016-06-03 10:21
谢谢你们  都能用 我用了2楼的方法  感谢你们的帮助  




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2