登录
首页 >  Golang >  Go问答

使用 bash 的大括号扩展语法生成目录结构

来源:stackoverflow

时间:2024-02-26 10:33:26 145浏览 收藏

golang学习网今天将给大家带来《使用 bash 的大括号扩展语法生成目录结构》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

虽然 os.MkdirAll 的行为类似于 mkdir -p 创建父项(如果需要),那么您将如何获取输入字符串,例如data/{P1/{10..19},P2/{20..29},P3/{30..39}} 并创建目录树?


解决方案


此字符串 data/{p1/{10..19},p2/{20..29},p3/{30..39}}bash brace expansion

有一些库已经实现了这个:

您还可以使用 filepath.glob 来实现类似于 bash 通配符语法:https://golang.org/pkg/path/filepath/#Glob

或者你也可以使用 bash:

cmd := exec.Command("bash", "-c", "echo data/{P1/{10..19},P2/{20..29},P3/{30..39}}")
respBytes, err := cmd.CombinedOutput()
if err != nil {
    panic(err)
}

for _, path := range strings.Fields(string(respBytes)) {
    os.MkdirAll(path, 0700)
}

值得注意的是,如果文件夹/文件名中有空格,此策略将不起作用。

理论要掌握,实操不能落!以上关于《使用 bash 的大括号扩展语法生成目录结构》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>