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

如何用find命令匹配public_html/core/cache路径并删除其内容?

定位并清理特定路径下的cache文件夹

我明白你想精准找到所有路径为public_html/core/cache的文件夹,之前的命令出问题是因为对find的参数理解有点偏差——咱们一步步来解决:

第一步:精准定位目标文件夹

你之前用find . -name cache会匹配所有名为cache的文件夹,不管它在什么位置,所以会出现无关结果;而find . -name public_html/core/cache报错是因为-name参数只匹配单个文件名,不是完整路径。

要匹配完整路径,咱们得用-path参数:

  • 如果你要找当前目录下直接的public_html/core/cache文件夹(不递归到子目录里的同名路径),用这个命令:
    find . -path "./public_html/core/cache" -type d -print
    
  • 如果你的目录结构里有多个层级的项目(比如./project1/public_html/core/cache、./project2/public_html/core/cache),需要递归匹配所有这类路径,就用通配符:
    find . -path "*/public_html/core/cache" -type d -print
    

这里的-type d是确保只匹配文件夹,避免误匹配同名文件,-print会把找到的路径输出到终端,方便你确认结果是否正确。

第二步:确认无误后删除文件夹内容

当你确认输出的路径都是你要找的目标后,就可以修改命令来删除这些文件夹里的所有内容了。注意:下面的命令会删除文件夹内的所有文件和子文件夹,但保留cache文件夹本身:

方法1:用-exec直接执行删除(直观易读)

find . -path "*/public_html/core/cache" -type d -exec rm -rf {}/* \;

解释一下:{}代表find找到的每个目标文件夹路径,{}/*就是这个文件夹下的所有内容,rm -rf会强制删除这些内容,\;是-exec的结束标记。

方法2:用xargs更高效(适合大量目标文件夹)

如果要处理的文件夹数量很多,xargs会比-exec更高效:

find . -path "*/public_html/core/cache" -type d -print0 | xargs -0 rm -rf -- {}/*

-print0和-0是为了处理带空格或特殊字符的路径,避免出错。

重要提醒

  • 一定要先运行不带删除的定位命令,确认输出的路径完全符合你的需求,再执行删除操作!
  • 如果你的cache文件夹本身也需要删除,把命令里的{}/*改成{}即可,但根据你的描述,应该是要保留文件夹只删内容。

内容的提问来源于stack exchange,提问作者Graeme Leighfield

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:19:41