gpt4 book ai didi

go - 递归创建具有特定所有者和组的目录

转载 作者:IT王子 更新时间:2023-10-29 00:59:05 26 4
gpt4 key购买 nike

我想递归地创建一个目录,并为创建的文件夹及其父级分配一个所有者和组。

例如,假设/var存在,我想创建/var/test1/test2/test3

我可以使用 os.MkdirAll("/var/test1/test2/test3", 0600) 来做到这一点。

但是,我还想将test1test2test3uid设置为user1giduser1

使用 os.Chown 可以做到这一点,但这需要大量的手动工作。在创建文件夹链之前,我需要构建文件夹及其父项的树,然后在创建后对每个文件夹使用 os.Chown

有没有更简单的方法?

最佳答案

有点像这样ChownR() type of function ,想法是过滤步行,并将 chown 仅应用于作为传入参数的路径的一部分的文件夹(此处 "/var/test1/test2/test3)

没有过滤器:

func ChownR(path string, uid, gid int) error {
return filepath.Walk(path, func(name string, info os.FileInfo, err error) error {
if err == nil {
err = os.Chown(name, uid, gid)
}
return err
})
}

换句话说,用 filepath.Walk() ,这里不应该涉及太多的“手工工作”。

关于go - 递归创建具有特定所有者和组的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33161284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com