golang 修改文件可执行权限
在 Go 语言中,可以使用 os 包来修改文件的权限。具体步骤如下:
-
使用 os.Stat() 函数获取文件的信息,包括文件名、大小、修改时间、权限等。
-
使用 os.Chmod() 函数修改文件的权限,该函数的参数是文件名和权限掩码。
例如,以下代码演示了如何修改文件的权限为可执行:
package main
import (
"fmt"
"os"
)
func main() {
filename := "test.sh"
fileInfo, err := os.Stat(filename)
if err != nil {
fmt.Println(err)
return
}
// 获取文件的当前权限
oldPerm := fileInfo.Mode().Perm()
fmt.Printf("文件 %s 的权限是 %o\n", filename, oldPerm)
// 修改文件权限为可执行
newPerm := oldPerm | 0111
if err := os.Chmod(filename, newPerm); err != nil {
fmt.Println(err)
return
}
// 再次获取文件的权限,确认是否修改成功
fileInfo, err = os.Stat(filename)
if err != nil {
fmt.Println(err)
return
}
newPerm = fileInfo.Mode().Perm()
fmt.Printf("文件 %s 的新权限是 %o\n", filename, newPerm)
}
在上面的代码中,我们首先使用 os.Stat() 函数获取了文件 test.sh 的信息,然后通过 fileInfo.Mode().Perm() 获取了文件的当前权限。接着,我们将文件的权限掩码修改为可执行(0111),并使用 os.Chmod() 函数修改了文件的权限。最后,我们再次获取了文件的权限,确认修改是否成功。
需要注意的是,文件权限掩码是一个八进制数,其中每一位分别表示读、写、执行权限,分别用 4、2、1 表示。因此,可执行权限为 1(二进制为 001),读权限为 4(二进制为 100),写权限为 2(二进制为 010),可读可写权限为 6(二进制为 110),以此类推。修改权限掩码时,可以使用位运算符或或运算(|)来添加权限,使用按位与运算符(&)来去除权限。
原文地址: https://www.cveoy.top/t/topic/vtg 著作权归作者所有。请勿转载和采集!