dsa111111 2019-02-09 01:47
浏览 32
已采纳

Go中Linux上的八进制文件烫发位

I am trying to get file permission bits in Octal representation. The below code prints it as string. Is there an API to print in Octal or int?

import "os"
import "fmt"

func main() {
    m, _ := os.Stat("test.go")
    perm := m.Mode().Perm()
    fmt.Println(perm)
}   
$:~/gocode/ws/gocode$ go run perm.go 
-rw-rw-r--
@:~/gocode/ws/gocode$ 
  • 写回答

1条回答 默认 最新

  • duanmo5724 2019-02-09 01:57
    关注

    For example,

    package main
    
    import (
        "fmt"
        "os"
        "strconv"
    )
    
    func main() {
        fi, err := os.Stat("test.go")
        if err != nil {
            fmt.Fprintln(os.Stderr, err)
            return
        }
        perm := fi.Mode().Perm()
        fmt.Println(perm)
        fmt.Printf("%o
    ", perm)
        fmt.Printf("%#o
    ", perm)
        fmt.Println(strconv.FormatUint(uint64(perm), 8))
        fmt.Println("0" + strconv.FormatUint(uint64(perm), 8))
    }
    

    Output:

    -rw-rw-r--
    664
    0664
    664
    0664
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?