shell脚本根据最后修改时间删除文件 | 您所在的位置:网站首页 › linux按时间删除 › shell脚本根据最后修改时间删除文件 |
一、遍历指定目录下的所有文件包括子文件夹中的文件,如果文件的最后修改时间距离现在超过1小时则删除该文件
如:遍历 /var/local/temp/ 和 /var/download/attach/ 目录下的所有文件(包括子文件夹中的文件),如果文件的最后修改时间距离现在超过1小时则删除该文件,只删除文件,不会删除文件夹 testClear.sh: #!/bin/bash function clear(){ for file in ` ls $1 ` do if [ -d $1"/"$file ];then clear $1"/"$file else a=`stat -c %Y $1"/"$file` b=`date +%s` if [ $[ $b - $a ] -gt 3600 ];then rm -rf $1"/"$file fi fi done } dirPath1="/var/local/temp/" dirPath2="/var/download/attach/" clear $dirPath1 clear $dirPath2 二、遍历指定目录下的所有文件包括子文件夹中的文件(1)对于指定目录下的文件最后修改时间距离现在超过1小时则删除该文件。比如/usr/local/testFile/下有a.txt,它的最后修改时间距今超过一小时则将删除; (2)对于指定目录下的子文件夹下的文件,如果该子文件夹下的所有文件最后修改时间距离现在都超过了1小时则删除该子文件夹(比如/usr/local/testFile/下有文件夹files,files文件夹下有b.txt和c.txt,只有b.txt和c.txt最后修改时间距离现在都超过了1小时才会删除files文件夹),否则该子文件夹和其中文件不删除; testClear.sh: #!/bin/bash function clear(){ if [ -d $1 ];then for f in ` ls $1 ` do file=$1$f a1=`stat -c %Y $file` b1=`date +%s` if [ $[ $b1 - $a1 ] -gt 3600 ];then rm -rf $file fi done else echo "目录不存在" fi } dirPath1="/usr/local/testFile/" dirPath2="/usr/local/testFile1/" clear $dirPath1 clear $dirPath2 三、定时执行:打开定时表编辑界面 crontab -e将上面的shell脚本加入其中 每一小时执行一次 0 */1 * * * /usr/local/testClear.sh参考: linux shell 中判断文件、目录是否存在的方法 shell脚本函数及传参 利用shell脚本遍历某个目录下的所有文件 shell脚本——比较当前时间与文件的创建时间间隔 shell 判断文件夹或文件是否存在 |
CopyRight 2018-2019 实验室设备网 版权所有 |