(1)
#!/bin/bash
#当文件大于1G时清空
FILE=/root/hello.txt
#判断文件是否存在
if ! [ -f $FILE ]
then
#输出文件不存在
echo “file not exist!”
exit 1
fi
#判断文件大小,ls -l 用awk取输出的第五列
if [ ls -l $FILE|awk '{print $5}' -gt $((1024*1024)) ]
then
#输出空到文件中
echo " "> $FILE
fi
(2)
"find -size"
-size 选项用于查找满足指定的大小条件的文件(注意不查找目录), +表示大于, -表示小于, 没有+或-表示正好等于。
#!/bin/bash
cd /opt/cli-task
for i in $(find $PWD/logs/* -size +3G)
do
echo " " > ${i};
done
(3)
"ls -l"
ls命令是linux下用来列出目录下的文件. 下面是关于ls的一些常规用法:
ls -a #列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
ls -l #列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
ls -F #在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示FIFOS、"/"表示目录、"="表示套接字。
ls -s #在每个文件的后面打印出文件的大小。 size(大小)
ls -t #按时间进行文件的排序 Time(时间)
ls -A #列出除了"."和".."以外的文件。
ls -R #将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
ls -L #列出文件的链接名。Link(链接)
ls -S #以文件的大小进行排序
ls可以结合管道符”|“来进行一下复杂的操作。比如: ls | less用于实现文件列表的分页,ls
#!/bin/bash
cd /opt/cli-task
for i in $(ls -l $PWD/logs/* |awk '{print $5}')
do
for f in $(ls -l $PWD/logs/* |grep $i |awk '{print $9}')
do
if [ ${i} -gt 3221225472 ]; then #超过3G自动清理
echo ${f} ${i}
echo "" > ${f}
fi
done
done