原理 利用ls的排序 和管道以及awk的过滤
[ccn lang="bash" tab_size="4" theme="blackboard" width="800"]
ls -lrt | awk '/xmhi/ { f=$NF };END{ print f }'
[/ccn]
中间的xmhi是文件所包含的字符串
另外如果要ls出所有的文件名
[ccn lang="bash" tab_size="4" theme="blackboard" width="800"]
ls -l |awk '{print$9}'
[/ccn]
今天刚好就用上了,用来清理apache的日志,写了一个crontab的脚本
如下
[ccn lang="bash" tab_size="4" theme="blackboard" width="800"]
#! /bin/bash
let num=`ls -al /var/log/apache2 |grep access_log. | wc -l`
if [ $num -gt 5 ] ; then
logfile=`ls -lt /var/log/apache2 | awk '/access_log./ { f=$NF };END{ print f }'`
rm -rf /var/log/apache2/"$logfile"
fi
[/ccn]