自动删除指定目录(多个)下的最后修改时间超过指定天数的文件的bash脚本

 
更多

自动删除指定目录(多个)下的最后修改时间超过指定天数(默认365天,一年)的文件的 bash 脚本。

#!/bin/bash

#自动删除指定目录(多个)下的最后修改时间超过指定天数(默认365天,一年)的文件

# 定义包含目录路径的数组
directories=("/home/www/www.phpernote.com/logs" "/path/to/dir2")

# 定义天数
days=365

# 定义一个空数组来存储文件
files_to_delete=()

# 遍历数组中的每个目录
for dir in "${directories[@]}"; do
    # 检查目录是否存在
    if [ -d "$dir" ]; then
        while IFS= read -r -d '' file; do
            files_to_delete+=("$file")
        done < <(find "$dir" -type f -mtime +${days} -print0)

        # 遍历数组并删除文件
        for file in "${files_to_delete[@]}"; do
            #rm -f "$file"
            echo "文件 $file 的最后修改时间已超过一年"
        done

        echo "目录 $dir 中最后修改时间超过 $days 天的文件已经删除完毕"

        # 清空数组,为下一个目录准备
        files_to_delete=()
    else
        echo "目录 $dir 不存在!"
    fi
done
打赏

本文固定链接: https://www.cxy163.net/archives/2936 | 绝缘体

该日志由 绝缘体.. 于 2024年08月14日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 自动删除指定目录(多个)下的最后修改时间超过指定天数的文件的bash脚本 | 绝缘体
关键字: , , , ,

自动删除指定目录(多个)下的最后修改时间超过指定天数的文件的bash脚本:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter