You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux find命令脚本故障:无法删除1天前修改的文件求排查

问题排查与修复

你的脚本未删除文件的核心问题出在find命令的参数设置上:

1. -maxdepth 0 参数错误

-maxdepth 0 的作用是仅搜索你输入的路径本身,不遍历该路径下的内容。如果输入的是目录路径,find会尝试判断这个目录是否是文件(-type f),显然目录不属于文件类型,因此不会找到任何匹配结果。

2. 修正方案

移除-maxdepth 0,或者根据需求设置为-maxdepth 1(仅搜索目录下的直接文件,不递归子目录):

修正后的脚本

#!/bin/bash

# 读取用户输入的目录路径
read -p "Please enter the directory path from which you want to remove unused files: " path

# 创建修改时间超过1天的文件数组(不递归子目录)
readarray -t files < <(find "$path" -maxdepth 1 -type f -mtime +1)

# 交互式遍历删除文件
for file in "${files[@]}"; do
  rm -i "$file"
done

额外注意事项

  • -mtime +1 的实际含义:它匹配的是**修改时间距离当前时间超过1整天(至少48小时前)**的文件。如果你的文件是1月12日创建,当前日期是1月13日,那么-mtime +1不会匹配(未达到48小时),此时可以改用-mtime +0(匹配超过24小时的文件)或者-mmin +1440(直接指定分钟数)。
  • 先验证find命令:单独运行find "$path" -maxdepth 1 -type f -mtime +1,确认是否能列出你想要删除的文件,再执行脚本。
  • 权限检查:确保你对目标目录和文件拥有删除权限。

内容的提问来源于stack exchange,提问作者Sumonto Chatterjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 02:25:19