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

Bash脚本条件删除文件:排除node_modules与build文件夹问题

解决Bash脚本删除文件时排除指定目录的问题

你的脚本存在语法错误,且缺少实际删除操作,导致无法达成需求,下面是问题分析和修正方案:

原脚本的问题

  • 变量赋值错误:file_name = "$file" 中赋值符号=前后不能有空格,正确写法是file_name="$file"
  • if条件语法错误:Bash中判断条件需用[[ ... ]](推荐)或[ ... ],而非( ... );同时"$file_name"!="build"缺少空格,应写成"$file_name" != "build"
  • 仅输出文件名,未执行删除操作

修正后的遍历脚本

如果要遍历当前目录内容并删除(排除node_modules和build),可以用以下脚本:

for file in *; do
    file_name="$file"
    if [[ "$file_name" != "node_modules" && "$file_name" != "build" ]]; then
        # 测试阶段可先保留echo确认要删除的内容,无误后再替换成rm -rf
        # echo "待删除:$file"
        rm -rf "$file"
    fi
done

更简洁的find命令写法

用find命令可以更高效实现需求:

# 删除当前目录下所有非node_modules、非build的内容,./*避免匹配隐藏文件
find ./* -maxdepth 0 ! -name "node_modules" ! -name "build" -exec rm -rf {} +

注意:删除操作有风险,建议先将rm -rf替换为echo,确认待删除内容无误后再执行实际删除。

内容的提问来源于stack exchange,提问作者jaber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:06:04