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

清理WP缩略图时rm -rf仅删当前目录文件不递归处理子目录如何解决

为什么rm -rf没有递归删除子目录内的文件

rm的-r参数的作用是递归删除你传递给rm的参数列表中的目录及其所有内容,而你执行的命令中,通配符*是由Shell在调用rm之前就完成展开的,只会匹配当前工作目录下的文件名,不会自动遍历子目录匹配文件。所以你给rm的参数只有当前目录下符合规则的文件名,自然不会处理子目录里的文件。

递归删除所有WP缩略图的正确方法

操作前建议先备份整个uploads目录,避免误删原文件。

步骤1:先预览要删除的文件,确认匹配准确

如果需要删除所有符合WP缩略图命名规则的文件(即文件名带[数字]x[数字]后缀的裁剪文件),执行以下命令预览列表,确认没有误匹配到要保留的原文件:

find ./ -type f -regextype posix-extended -regex '.*-[0-9]+x[0-9]+\.[a-zA-Z0-9]+'

如果你只需要删除你指定的特定尺寸的文件,可以用以下命令预览:

find ./ -type f \( -name "*-100x100.*" -o -name "*-1024x576.*" -o -name "*-1080x608.*" -o -name "*-1080x675.*" -o -name "*-1280x640.*" -o -name "*-1280x720.*" -o -name "*-150x150.*" -o -name "*-150x84.*" -o -name "*-250x141.*" -o -name "*-26x26.*" -o -name "*-300x169.*" -o -name "*-400x250.*" -o -name "*-400x284.*" -o -name "*-400x516.*" -o -name "*-440x264.*" -o -name "*-440x440.*" -o -name "*-627x376.*" -o -name "*-64x64.*" -o -name "*-768x432.*" \)

步骤2:确认列表无误后执行删除

在上面的预览命令末尾加上-delete参数即可执行删除,比如通用删除所有缩略图的命令:

find ./ -type f -regextype posix-extended -regex '.*-[0-9]+x[0-9]+\.[a-zA-Z0-9]+' -delete

删除你指定尺寸的命令:

find ./ -type f \( -name "*-100x100.*" -o -name "*-1024x576.*" -o -name "*-1080x608.*" -o -name "*-1080x675.*" -o -name "*-1280x640.*" -o -name "*-1280x720.*" -o -name "*-150x150.*" -o -name "*-150x84.*" -o -name "*-250x141.*" -o -name "*-26x26.*" -o -name "*-300x169.*" -o -name "*-400x250.*" -o -name "*-400x284.*" -o -name "*-400x516.*" -o -name "*-440x264.*" -o -name "*-440x440.*" -o -name "*-627x376.*" -o -name "*-64x64.*" -o -name "*-768x432.*" \) -delete

Force Regenerate Thumbnails删除失败的原因

和你本次rm命令的问题没有关联,插件删除失败通常是两个原因:

  • 目录权限问题:uploads目录的所属用户/组是Web服务运行用户(通常是www-data),插件运行时没有删除文件的权限
  • 缩略图尺寸未注册:插件默认只会删除当前WordPress环境(主题、插件)注册过的缩略图尺寸对应的文件,如果你要删除的缩略图对应的尺寸已经不再注册,插件无法识别这些文件为废弃缩略图,就不会执行删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:57:04