如何在GitHub Actions跨平台工作流中将Windows路径转换为UNIX路径
官方推荐最佳实践方案
GitHub Windows运行环境预装的Git for Windows已经自带了路径转换工具cygpath,你直接在bash脚本中调用即可完成Windows路径到UNIX格式的转换,无需额外安装任何依赖,是官方跨平台工作流示例中的标准实现方式。
基础使用示例
转换任意Windows格式路径为UNIX格式:
# 转换GITHUB_WORKSPACE为UNIX路径 unix_workspace=$(cygpath -u "$GITHUB_WORKSPACE")
跨平台通用封装
为了在Linux、macOS、Windows三个平台复用同一段代码,你可以封装一个通用的路径转换函数,自动适配不同系统:
# 定义跨平台路径转换函数 if [[ "$RUNNER_OS" == "Windows" ]]; then convert_to_unix() { cygpath -u "$1" } else convert_to_unix() { echo "$1" } fi # 所有平台通用调用逻辑,无需区分系统 workspace=$(convert_to_unix "$GITHUB_WORKSPACE") temp_dir=$(convert_to_unix "$RUNNER_TEMP")
补充说明
- 该方案适配所有GitHub Actions默认环境变量的路径转换需求,包括
GITHUB_ENV、GITHUB_OUTPUT等常用特殊路径 - 你不需要额外处理路径中的特殊字符、空格等场景,
cygpath会自动完成兼容处理
内容的提问来源于stack exchange,提问作者Daniel Wolf
相关产品推荐
相关产品推荐

