删除文件使用shell脚本年龄超过10天的Unix [复制](Delete files older

2019-06-21 06:27发布

这个问题已经在这里有一个答案:

  • shell脚本删除目录年龄超过n天 5个回答

我是新来的shell脚本,谁能帮助? 我想从当前日期的文件夹中删除脚本回10天。 这些脚本是这样的:

2012.11.21.09_33_52.script
2012.11.21.09_33_56.script
2012.11.21.09_33_59.script

该脚本将在每10天用crontab的运行,这就是为什么我需要的当前日期。

Answer 1:

find是这种任务的常用工具:

find ./my_dir -mtime +10 -type f -delete

说明

  • ./my_dir目录(换成你自己的)
  • -mtime +10早于10天
  • -type f仅文件
  • -delete并不令人意外。 删除它来测试你的find执行整个命令之前过滤器

和照顾./my_dir的存在是为了避免坏的惊喜!



Answer 2:

只是调味了shell脚本来删除旧文件

#!/bin/bash

timestamp=$(date +%Y%m%d_%H%M%S)
path="/data/backuplog"
filename=log_back_$timestamp.txt
log=$path/$filename

find $path -name "*.txt"  -type f -mtime +7 -print -delete >> $log

echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> $log

START_TIME=$(date +%s)

... code for backup ...or any other operation ....


END_TIME=$(date +%s)

ELAPSED_TIME=$(expr $END_TIME - $START_TIME)


echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> $log
echo "Elapsed Time ::  $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) "  >> $log

该代码建立在sputnick答案,并增加了一些更多的东西。

  • 记录与时间戳命名的文件
  • 日志文件夹指定
  • 找到长相为* .txt文件只能在日志文件夹
  • 7天以上的被删除日志文件(假设这是一个备份日志)
  • 注意到,开始/结束时间
  • 计算所经过的时间...


Answer 3:

如果你能负担得起通过文件数据的工作,你可以做

find -mmin +14400 -delete


文章来源: Delete files older than 10 days using shell script in Unix [duplicate]