今天收到一个需求,项目被漏洞扫描后报告了一个 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

标签: shell, bash