我想递归地创建一个目录并为创建的文件夹及其父项分配一个所有者和组。递归地创建一个具有特定所有者和组的目录
例如,假设/var
存在,我想创建/var/test1/test2/test3
。
我能够使用os.MkdirAll("/var/test1/test2/test3", 0600)
来做到这一点。
不过,我也想设置test1
,test2
和test3
的uid
到user1
和gid
到user1
。
使用os.Chown
可以这样做,但这需要大量的手动工作。我需要在创建文件夹链之前构建不存在的文件夹及其父项的树,然后在创建后在每个文件夹上使用os.Chown
。
有没有更简单的方法?
我不认为有这样的事情可用。你可能最好复制'MkdirAll'源文件并添加一个合适的'Chown'调用来做你想做的事(IIRC没有办法自动创建一个非默认所有者的目录)。 –
我认为这是目前最好的选择,尽管它感觉像是一种代码味道。 – F21