linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js

逻辑:遍历全部 .js,不匹配 .min.js 的才删除

方式1:一行命令(直接终端执行,谨慎!建议先打印看要删哪些,再真正删)

bash 复制代码
# 第一步:只打印将要删除的文件(测试,不会真实删除,强烈建议先跑这个核对)
find /你的目标目录 -type f -name "*.js" ! -name "*.min.js"

# 第二步,确认列表没问题,再执行删除
find /你的目标目录 -type f -name "*.js" ! -name "*.min.js" -delete

参数说明:

  • /你的目标目录:替换成实际路径,例如 /data/www/project/public
  • -type f:只处理普通文件,跳过目录
  • -name "*.js":后缀js
  • ! -name "*.min.js":取反,排除min.js压缩文件
  • -delete:直接删除找到的文件(放在最后)

⚠️ 重要:务必先不带 -delete 执行,确认输出的文件列表是你预期要删除的,再加‑delete,防止误删!

方式2:完整shell脚本(保存为 clean_js.sh)

bash 复制代码
#!/bin/bash

# ========== 修改这里为你的目标目录 ==========
TARGET_DIR="/data/www/project/public"
# ==========================================

if [ ! -d "$TARGET_DIR" ];then
    echo "错误:目录 $TARGET_DIR 不存在!"
    exit 1
fi

echo "=== 即将扫描目录: $TARGET_DIR ==="
echo "【预览将要删除的文件】"
find "$TARGET_DIR" -type f -name "*.js" ! -name "*.min.js"

read -p "确认删除以上文件? [y/N] " ans
if [[ "$ans" == "y" || "$ans" == "Y" ]];then
    find "$TARGET_DIR" -type f -name "*.js" ! -name "*.min.js" -delete
    echo "删除完成"
else
    echo "已取消操作"
fi

使用:

bash 复制代码
chmod +x clean_js.sh
./clean_js.sh

补充说明边界

  1. 文件名为 abc.min.js 不会删;abc.js、abc.dev.js、abc.123.js 都会被删除,符合需求。
  2. find会递归所有后代子目录。
  3. 如果文件名带换行等极端奇葩文件名,find -delete 是安全的,不要用管道xargs(xargs容易踩文件名坑)。

安全提醒

  • 不要直接对 / 根目录执行,会灾难!
  • 优先预览再删除;重要目录操作前建议备份。

如果你需要我顺带写一个删除后输出统计一共删了多少个文件的版本,我可以补充。

相关推荐
叼烟扛炮39 分钟前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
无足鸟ICT1 小时前
【RHCA+】who命令(查看已登陆用户)
linux·运维·服务器
Escalating_xu1 小时前
【Linux 网络编程】应用层协议 HTTP(下):Header、连接管理与 C++ HTTP 服务器
linux·服务器·网络
云和数据.ChenGuang2 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
xyouyuweizhu2 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
多弗朗皮卡丘3 小时前
C++的IO流
开发语言·c++·io流·文件io流
liyi_hz20083 小时前
O2OA(翱途) V10.1 即将发布|功能再升级,安全再加固,协同更高效!
java·javascript·windows·开源软件
骑着蜗牛撵大象3273 小时前
AI Agent 工程化开发实战(三):用 StateGraph 给智能体搭一条可回放的状态流水线
java·开发语言·jvm·ai·状态管理·langgraph·stategraph
GeW3 小时前
新质生产力路线图落地,Linux运维与数据库架构师的机会清单
linux