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

如何删除除dev和default外的所有空Terraform工作区?

删除除dev和default外的所有空Terraform工作区

手动分步操作

如果你倾向于逐个确认操作,可以按以下步骤执行:

  • 列出所有工作区,明确待处理目标:
    terraform workspace list
    
  • 逐个切换到除dev和default之外的工作区:
    terraform workspace select <目标工作区名称>
    
  • 检查该工作区是否为空(无任何资源状态):
    terraform state list
    
    如果命令无任何输出,说明该工作区是空的。
  • 删除空工作区:
    terraform workspace delete <目标工作区名称>
    

自动化脚本操作

如果工作区数量较多,可以用bash脚本批量处理,自动检测并删除空工作区:

# 先切换到保留的default工作区,避免删除当前工作区报错
terraform workspace select default > /dev/null

# 遍历所有非dev、非default的工作区
for workspace in $(terraform workspace list | sed 's/^[* ]//' | grep -vE '^(dev|default)$'); do
  # 切换到目标工作区
  terraform workspace select "$workspace" > /dev/null
  # 检查工作区是否为空
  if [ -z "$(terraform state list)" ]; then
    echo "正在删除空工作区: $workspace"
    terraform workspace delete "$workspace"
  else
    echo "工作区 $workspace 存在资源,跳过删除"
  fi
done

注意事项

  • 执行操作前建议备份Terraform状态文件,避免误操作导致数据丢失。
  • 如果工作区关联了远程状态(比如S3、Terraform Cloud),确保你有足够的权限执行删除操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:09:58