由于工作,要写个小脚本来完成清除系统垃圾文件,由于自己也是刚刚接触UNXI下的sh编程,所以把编程时遇到的问题写下来与像我一样的UNIX菜鸟共享。
清除垃圾文件当然是要查找并删除过去的文件,开始想用 logDate=`expr ls -l | awk '{print $7}'`这条语句(因为那个时候我还只是知道ls命令和一点点awk命令),取出文件的时间,然后再用rm -rf $logdate删除,后来才发现想法太漏洞太多,如果文件太多,变量里会放不下。
后来我知道了find命令,以为如获至宝,谁知道,才真正的走上了辛酸路程。
首先看了一下man find 把有用的东西总结了一下:
-type x X代表类型,b块文件 c字符文件 d目录文件 p管道文件 f正则文件 l连接文件
-size n[c] n代表文件字节数,如果后跟上字母c,则代表N个字符
-user username username可以是用户号,或者是用户
-level n 搜寻几级目录
-links n 搜寻有几个连接的文件
-mtime n 搜寻N天前被修改的文件,只是文件数据被修改或者创建文件
-exec rm -rf 找到合适的文件后,对此文件执行rm -rf命令,命令如果需要变量,则把变量放在{}括号中,
另外,rm应该以\;结束,即:"-exec rm -rf {} \;" 分号是一定要加的。
-ctime n 搜寻N天前被修改过的文件,包括文件数据修改、节点信息修改或者是创建文件
-atime n 搜寻N天前被阅读过或者是被创建的文件
continuing.........
posted on 2005-10-17 11:27
飞翔的尘埃 阅读(2347)
评论(1) 编辑 收藏 所属分类:
UNIX