linux删除指定文件夹下7天之前的文件

Shell脚本删除指定目录过期文件
该博客提供了一段Shell脚本,用于删除指定目录下超过指定时间的文件。指定了三个目录,分别为/apps/temp_ma/SDO/、/apps/temp_ma/KFC/和/apps/sals/logs/,设置过期时间为7天,通过函数实现文件删除操作。

#!/bin/bash
#删除指定目录下超过指定时间的文件
filepath1="/apps/temp_ma/SDO/"
filepath2="/apps/temp_ma/KFC/"
filepath3="/apps/sals/logs/"
declare filepath="$filepath1 $filepath2 $filepath3"
days=7
#删除过期的文件
function foreacedel2(){
echo "argument is:"$1;
find $1 -type f -mtime +$days|xargs rm -f;
}


function foreach(){
echo $filepath
for x in $filepath
do 
foreacedel2 $x;
done
}


foreach;
————————————————

原文链接:https://blog.youkuaiyun.com/kaka20099527/article/details/52311561

Linux 和 Windows 环境中,可以根据文件夹创建时间删除 7 的日志文件,具体实现方式有所不同。由于大多数系统默认不记录文件夹创建时间,因此通常通过文件的修改时间(mtime)或访问时间(atime)进行判断。 ### Linux 环境 在 Linux 中,可以使用 `find` 命令结合 `-mtime +7` 参数来删除 7 文件夹及其内容。假设日志文件夹位于 `/var/log/myapp/`,可以使用以下命令进行删除: ```bash find /var/log/myapp -type d -mtime +7 -exec rm -rf {} \; ``` - `/var/log/myapp`:日志文件夹的根路径 - `-type d`:表示只匹配目录 - `-mtime +7`:匹配修改时间在 7 之前文件夹 - `-exec rm -rf {} \;`:对匹配到的每个文件夹执行删除操作 如果希望保留最近 7 文件夹并仅删除更早的文件夹,该命令已经可以满足需求[^4]。 ### Windows PowerShell 环境 在 Windows 环境中,可以使用 PowerShell 脚本来实现类似功能。以下是一个示例脚本,用于删除 7 创建文件夹: ```powershell $Path = "C:\Logs" $Days = 7 $Limit = (Get-Date).AddDays(-$Days) Get-ChildItem -Path $Path -Directory | Where-Object { $_.CreationTime -lt $Limit } | Remove-Item -Recurse -Force ``` - `$Path`:指定日志文件夹的路径 - `$Days`:定义保留数 - `Get-ChildItem -Directory`:获取所有子文件夹 - `Where-Object { $_.CreationTime -lt $Limit }`:筛选创建时间早于设定时间的文件夹 - `Remove-Item -Recurse -Force`:递归删除文件夹及其内容 PowerShell 支持直接访问文件夹创建时间(CreationTime),因此适合用于基于创建时间的清理任务[^1]。 ### 注意事项 - 在执行删除操作,建议先使用 `echo` 或 `Write-Output` 输出将要删除文件夹,以确认命令的准确性。 - 如果系统不支持直接读取文件夹创建时间,可以通过文件的修改时间替代。 - 删除操作具有破坏性,务必在脚本中加入日志记录功能以便追踪执行情况[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值