shell脚本查询匹配文件进行操作

使用Shell脚本查找并操作特定文件
这篇博客介绍了如何使用Shell脚本在Linux环境中查找特定类型的文件,如以'sh'结尾的文件,并进行权限设置。同时,还展示了如何查找并删除名为'test-delete.txt'的文件。

1.寻找文件并赋权

        查询当前目录及子目录下所有以“sh”结尾的文件,并赋执行权限

#!/bin/bash
当前目录及子目录下所有以“sh”结尾的文件添加可执行权限
find ./ -name "*.sh" -type f -exec&n
### 编写一个定时执行的Shell脚本匹配并删除特定文件 要实现这一目标,需要完成两个主要步骤:**编写Shell脚本**和**配置定时任务(crontab)**。 #### 3.1 编写Shell脚本 假设目标是删除指定目录下所有修改时间超过7天的`.log`文件,可以编写如下的Shell脚本: ```bash #!/bin/bash # 定义目标目录 TARGET_DIR="/path/to/target" # 查找并删除修改时间超过7天的 .log 文件 find "$TARGET_DIR" -name "*.log" -mtime +7 -exec rm -f {} \; ``` - `TARGET_DIR`:指定需要扫描的目录路径。 - `find`:用于查找文件。 - `-name "*.log"`:匹配以`.log`结尾的文件。 - `-mtime +7`:筛选修改时间超过7天的文件。 - `-exec rm -f {} \;`:对每个匹配文件执行删除操作,`-f`表示强制删除[^2]。 保存脚本为`delete_old_logs.sh`,并赋予执行权限: ```bash chmod +x delete_old_logs.sh ``` #### 3.2 配置crontab定时任务 使用 `crontab -e` 命令编辑当前用户的定时任务,并添加以下行以每天凌晨1点执行脚本: ```bash 0 1 * * * /absolute/path/to/delete_old_logs.sh ``` - `0 1 * * *`:表示每天凌晨1点执行。 - `/absolute/path/to/delete_old_logs.sh`:脚本的绝对路径[^3]。 确保脚本路径正确,并测试脚本是否能独立运行,避免定时任务执行失败。 --- ### 示例扩展:删除特定大小的文件 如果需要删除大于10MB的文件,可以修改脚本如下: ```bash find "$TARGET_DIR" -name "*.log" -size +10M -exec rm -f {} \; ``` - `-size +10M`:匹配大于10MB的文件。 --- ### 示例扩展:记录删除日志 可以在脚本中加入日志记录功能: ```bash #!/bin/bash TARGET_DIR="/path/to/target" LOG_FILE="/var/log/delete_old_logs.log" find "$TARGET_DIR" -name "*.log" -mtime +7 -exec rm -f {} \; >> "$LOG_FILE" 2>&1 ``` - `>> "$LOG_FILE" 2>&1`:将标准输出和错误输出重定向到日志文件中。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tachypsychia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值