我正在尝试使用WalkDirwithChmod递归更改目录及其文件和子目录的权限。它以某种方式只是更改给定路径的第一个文件或目录,然后停止。有人可以发现错误吗?getFileMode只是转换字符串“755”os.FileMode(0755)并返回它。
func ChmodRec(path string, di fs.DirEntry, err error) error {
fileMode, err2 := getFileMode(os.Getenv("CHMOD_MODE"))
if err2 != nil {
log.Fatal("Could not set file mode for chmodding", path)
panic(err)
}
err2 = os.Chmod(path, fileMode)
if err2 != nil {
fmt.Println("Could not chmod", path)
panic(err)
}
fmt.Println("Changing mode of", path)
return nil
}
func ChmodRecursive(path string, mode string) {
os.Setenv("CHMOD_MODE", mode)
err := filepath.WalkDir(path, ChmodRec)
if err != nil {
log.Fatal("Could not chmod recursively ", path)
panic(err)
}
}
func main() {
path := "bla/test/"
mode := "755"
ChmodRecursive(path, mode)
}
慕工程0101907
一只萌萌小番薯
随时随地看视频慕课网APP
相关分类