find /runtime/ -type f -name "*.php" -exec rm -f {} \;
解释:find /runtime/:从 /runtime/ 目录开始查找
-type f:只匹配文件
-name "*.php":匹配以 .php 结尾的文件
-exec rm -f {} \;:对找到的每个文件执行删除操作
如果你的 /runtime/ 是你网站里的目录,比如 /www/wwwroot/your_site/runtime/,记得把路径改成具体的完整路径:
find /www/wwwroot/your_site/runtime/ -type f -name "*.php" -exec rm -f {} \;
要小心执行,建议先用 -print 先看会删除哪些文件:
find /runtime/ -type f -name "*.php" -print
已经进入当前目录,想批量删除 所有的.php的缓存文件,怎么删除你在当前目录,想批量删除所有 .php 缓存文件,可以用下面命令:
find . -type f -name "*.php" -exec rm -f {} \;
解释:. 表示当前目录及其子目录
-type f 表示只找文件
-name "*.php" 匹配所有以 .php 结尾的文件
-exec rm -f {} \; 对找到的每个文件执行删除
如果想先确认哪些文件会被删除,可以先执行:
find . -type f -name "*.php" -print
用 find . -type f -name "*.php" -exec rm -f {} \; 这种命令删除文件是直接彻底删除,不会进入宝塔面板的回收站,也不会经过系统的回收站。如果你想保留文件以防误删,建议先备份,或者手动移动到别的目录,再从那里删除。
宝塔回收站一般是通过面板操作删除文件时才会生效,命令行删除文件是不经过回收站的。
批量删除 导致负载100%
如果你在运行 find ... -exec rm -f {} \; 时服务器负载飙升到 100%,说明当前有大量 .php 文件,文件数量巨大(几万到几十万),每次执行 rm 时都要单独调用一次进程,造成系统压力。
优化删除命令的方式(推荐)
使用 xargs 可以大大提升删除效率,避免每个文件都启动一个 rm 子进程:
find . -type f -name "*.php" -print0 | xargs -0 rm -f
解释:-print0 和 xargs -0 是为了处理文件名中有空格或特殊字符
xargs 会将多个文件合并成一条 rm 命令,一次性删除,效率更高,负载更低
不推荐:-exec rm -f {} \;
它每删除一个文件都执行一次 rm,文件多时负载高、删除慢、系统卡顿。
限速删除(可选)
如果文件特别多,可以加 ionice 和 nice 控制删除进程优先级:
ionice -c2 -n7 nice -n19 find . -type f -name "*.php" -print0 | xargs -0 rm -f
临时应对高负载如果你已经在运行删除命令导致负载过高,可以:
top # 找到删除进程 PID
renice +19 <PID> # 降低它的优先级
或直接终止命令后重新使用优化版命令删除。