删除3天前创建的以log结尾的文件

本文介绍如何使用Shell脚本批量删除系统中超过三天的.log文件,提供了四种不同的实现方法,并展示了如何在指定目录下创建大量子目录及文件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

#/bin/bash    

# filename: del_log.sh

 

find / -name "*.log" -mtime 3 | xargs rm -rf

 

2.

#/bin/bash

# filename: del_log.sh

 

find / -name "*.log" -mtime 3 -exec rm -rf {} \;

 

3.

#/bin/bash

# filename: del_log.sh

 

find / -name "*.log" -mtime 3 -ok rm -rf {} \;

 

 4.删除 N天前指定目录下的文件或目录

0 3 * * * /usr/bin/find /home/server/dianjing-admin/webapps/back -mtime +3 | xargs rm -rf

0 3 * * * /usr/bin/find /home/server/jingdian-admin/webapps/back -mtime + 3 -exec rm -rf {} \;

 

 

在/usr/local下建立20个子目录xunlei1-xunlei20,再在这个子目录下分别建255个子目录dir1-dir255,再在255个子目录下创建10000个文件xunlei1.html-xunlei10000.html。

 

mkdir -p /usr/loca/xunlie{1..20}/dir{1..255}/

touch   /usr/loca/xunlie{1..20}/dir{1..255}/xunlei{1..10000}.html  

转载于:https://www.cnblogs.com/ray-mmss/p/10451141.html

### Linux 删除三天日期命名的日志文件方法 在 Linux 系统中,可以通过 `find` 和其他命令的组合实现删除指定日期范围内的日志文件。以下是具体的方法: #### 使用 `find` 命令按修改时间筛选并删除文件 如果日志文件是以日期命名的(例如:`2023-10-01.log`),可以利用 `find` 的 `-mtime` 参数来查找最近三天的内容,并通过 `-exec` 或者管道操作符将其删除。 ```bash find /path/to/logs -type f -name "*.log" -mtime +3 -exec rm -f {} \; ``` 上述命令解释如下: - `/path/to/logs`: 替换为目标日志存储路径。 - `-type f`: 表示只查找普通文件。 - `-name "*.log"`: 过滤以 `.log` 结尾文件。 - `-mtime +3`: 查找超过 3 修改的文件[^2]。 - `-exec rm -f {} \;`: 将找到的结果逐一传递给 `rm -f` 命令进行删除。 #### 判断文件中的日期并与当日期比较 当需要精确到文件名称所包含的具体日期时,则需编写 Shell 脚本来完成更复杂的逻辑判断。以下是一个简单的例子: ```bash #!/bin/bash LOG_DIR="/path/to/logs" CURRENT_DATE=$(date +"%Y-%m-%d") # 获取今的日期 THREE_DAYS_AGO=$(date -d "-3 days" "+%Y-%m-%d") # 计算三天的日期 for log_file in $(ls ${LOG_DIR}/*.log); do FILE_NAME=$(basename "$log_file") LOG_DATE=${FILE_NAME%%.*} # 提取文件中的日期部分 if [[ "${LOG_DATE}" < "${THREE_DAYS_AGO}" ]]; then rm -f "$log_file" # 如果文件名早于三天删除文件 fi done ``` 此脚本的功能描述为: - 定义变量保存日志目录位置以及计算出今三天的确切日期字符串。 - 遍历目标目录下的所有 .log 文件。 - 解析每个文件的名字获取其对应的日期字段。 - 当发现某个文件名字里面的日期小于等于我们定义好的三天界限值的时候就调用 `rm -f` 来移除它[^4]。 注意,在实际部署此类自动化清理任务之,请务必测试好脚本行为以免误删重要资料! --- ### 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值