shell脚本根据最后修改时间删除文件 您所在的位置:网站首页 linux按时间删除 shell脚本根据最后修改时间删除文件

shell脚本根据最后修改时间删除文件

2024-07-05 03:18| 来源: 网络整理| 查看: 265

一、遍历指定目录下的所有文件包括子文件夹中的文件,如果文件的最后修改时间距离现在超过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 实验室设备网 版权所有