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

Ubuntu 22系统下清理WordPress缩略图:如何排除特定图标文件实现批量删除

Ubuntu 22系统下清理WordPress缩略图:如何排除特定图标文件实现批量删除

嘿,这个场景我太熟悉了——WordPress给每张图生成一堆不同尺寸的缩略图,时间久了备份体积直接爆炸!你原来的思路没问题,就是差个排除特定图标文件的规则,我给你两种靠谱的解决方案:

方法一:用正则负向前瞻精准匹配(简洁版)

GNU Find支持PCRE正则(需要加-P参数),我们可以用负向前瞻断言来排除那些你不想删的图标前缀:

先测试查找(确认不会误删)

find . -P -regex '^\./(?!favicon|apple-touch-icon|mstile|android-chrome).*-[0-9]+x[0-9]+\.(png|jpg|webp)' -print0 | xargs -0 ls

执行删除(确认没问题后再运行)

find . -P -regex '^\./(?!favicon|apple-touch-icon|mstile|android-chrome).*-[0-9]+x[0-9]+\.(png|jpg|webp)' -print0 | xargs -0 rm -f

正则说明:

  • ^\./:匹配当前目录下的文件路径开头
  • (?!favicon|apple-touch-icon|mstile|android-chrome):负向前瞻,意思是后面的内容不能以这些前缀开头
  • .*-[0-9]+x[0-9]+\.(png|jpg|webp):就是你原来用来匹配WordPress缩略图的规则,确保只带-数字x数字后缀的图片

方法二:用-name排除规则(直观版,新手友好)

如果觉得正则有点绕,也可以用Find的! -name参数直接排除指定前缀的文件,逻辑更清晰:

先测试查找

find . -type f \( -name "*-[0-9]*x[0-9]*.png" -o -name "*-[0-9]*x[0-9]*.jpg" -o -name "*-[0-9]*x[0-9]*.webp" \) ! -name "favicon-*" ! -name "apple-touch-icon-*" ! -name "mstile-*" ! -name "android-chrome-*" -print0 | xargs -0 ls

执行删除

find . -type f \( -name "*-[0-9]*x[0-9]*.png" -o -name "*-[0-9]*x[0-9]*.jpg" -o -name "*-[0-9]*x[0-9]*.webp" \) ! -name "favicon-*" ! -name "apple-touch-icon-*" ! -name "mstile-*" ! -name "android-chrome-*" -print0 | xargs -0 rm -f

命令说明:

  • -type f:只查找文件(避免误删目录)
  • \( ... \):把多个图片格式的匹配规则括起来,用-o(或)连接
  • ! -name "xxx-*":排除所有以指定前缀开头的文件,比如favicon-、apple-touch-icon-等

小提示

不管用哪种方法,一定要先运行查找命令确认结果,确保没有包含你想保留的文件,再执行删除操作。另外用-print0和xargs -0是为了兼容文件名含空格、特殊字符的情况,避免命令出错。

备注:内容来源于stack exchange,提问作者AJ Tatum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 16:19:39