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

zsh环境下如何批量对多子目录执行kubectl apply命令

适配zsh(oh-my-zsh+p10k环境)的可行方案
  • 方案1:全shell兼容通用方案
    直接执行find命令即可,自动遍历所有符合要求的文件逐一执行操作,支持带空格的路径:
    find dir1 -type f -name "deployment.yml" -exec kubectl apply -f {} \;

  • 方案2:zsh原生极简循环方案
    oh-my-zsh默认已适配通配符规则,直接执行单行循环即可:
    for deploy_file in dir1/*/deployment.yml; do kubectl apply -f "$deploy_file"; done
    如果需要匹配dir1下任意层级子目录中的deployment.yml,可使用zsh的全局递归通配符:
    for deploy_file in dir1/**/deployment.yml; do kubectl apply -f "$deploy_file"; done

  • 方案3:管道xargs传参方案
    适合习惯管道操作的场景,避免特殊字符导致的传参错误:
    find dir1 -name "deployment.yml" -print0 | xargs -0 -I {} kubectl apply -f {}

之前命令失效原因说明

你此前执行的kubectl apply -f dir1/*/deployment.yml失效,是因为kubectl的-f参数要求每个目标文件前都需要单独携带-f标识,不能将多个文件路径直接拼接在单个-f参数后;而大括号枚举子目录的写法需要手动罗列所有子目录名称,灵活性极低,子目录数量变化时需要对应修改命令,不推荐日常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:15:05