如何使用Databricks CLI实现仅在文件夹存在时执行删除的功能
解决Databricks CLI仅在文件夹存在时执行删除的方案
核心实现逻辑
通过Databricks CLI自带的路径状态查询命令判断目标文件夹是否存在,仅当路径存在时触发删除操作,完全匹配你需要的if [ -d ... ]类shell判断逻辑。
标准实现脚本(推荐)
# 定义要删除的目标Workspace路径 TARGET_PATH="/Shared/myfolder" # 判断路径是否存在,存在则执行删除 if databricks workspace get-status "$TARGET_PATH" > /dev/null 2>&1; then databricks workspace delete -r "$TARGET_PATH" echo "已成功删除路径:$TARGET_PATH" else echo "路径 $TARGET_PATH 不存在,跳过删除操作" fi
逻辑说明
databricks workspace get-status用于查询指定路径的元数据,路径存在时返回0退出码,不存在时返回非0退出码> /dev/null 2>&1作用是丢弃命令的正常输出和错误输出,避免产生多余的日志信息
低版本CLI兼容方案
如果你使用的Databricks CLI版本较低,没有get-status命令,可以使用路径遍历匹配的方式实现:
TARGET_PATH="/Shared/myfolder" PARENT_PATH=$(dirname "$TARGET_PATH") DIR_NAME=$(basename "$TARGET_PATH") if databricks workspace ls "$PARENT_PATH" 2>/dev/null | grep -q "^${DIR_NAME}$"; then databricks workspace delete -r "$TARGET_PATH" fi
注意事项
- 执行前请确认
TARGET_PATH已替换为你实际需要删除的目标路径 - 如果你需要操作的是DBFS存储路径而非Workspace路径,只需将所有命令中的
workspace关键字替换为fs即可,判断逻辑完全一致 - 建议先使用测试路径验证脚本逻辑,避免误删重要资源
内容的提问来源于stack exchange,提问作者kanimbla
相关产品推荐
相关产品推荐

