遍历查找并删除指定后缀的文件 bash 脚本(删除资源目录下的所有 .map 文件)
今天收到一个需求,项目被漏洞扫描后报告了一个 Soucemap 敏感信息泄露
低危漏洞。
实际上都是第三方开源项目的,但没办法只好删除一下。其实需求就是把资源(js/css 相关的库)目录下的所有 .map
后缀的文件都删除掉。
由于文件较多,目录也多,手动一个个去删很累,就用 Claude
写了一个脚本查找并删除,同时加了一个确认的交互,用起来效果不错。
一开始我是在 CSDN 上找了一段代码改了改,发现不对,遂想起 Claude 来写一个,效果惊艳,还贴心地加了注释。AI 现在的程度确实很适合写这类小工具。
下面是代码:
#!/bin/bash
# 遍历的目录
dir=/path/to/yourdir
# 存储要删除的文件路径
deleteFiles=()
function traverse(){
for file in "$1"/*
do
if [ -d "$file" ]; then
traverse "$file"
else
filename="$(basename "$file")"
filename=${filename//@/\\@}
ext=${filename##*.}
if [ "$ext" = "map" ]; then
deleteFiles+=("$file")
fi
fi
done
}
# 遍历目录收集删除文件
traverse "$dir"
# 如果有收集到要删除的文件
if [ ${#deleteFiles[@]} -ne 0 ]; then
# 打印要删除的文件
echo "以下文件将被删除:"
for file in "${deleteFiles[@]}"
do
echo "$file"
done
# 请求用户确认
read -p "请确认是否删除以上文件[y/n]:" confirm
if [ "$confirm" = "y" ]; then
# 用户确认则删除
for file in "${deleteFiles[@]}"
do
rm -f "$file"
done
echo "删除完成"
else
echo "操作已取消"
fi
else
echo "未找到任何要删除的文件"
fi