cpuNram
cpuNram

Reputation: 205

File perm bits in octal on Linux in Go

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$ 

Upvotes: 2

Views: 1126

Answers (1)

peterSO
peterSO

Reputation: 166569

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\n", perm)
    fmt.Printf("%#o\n", perm)
    fmt.Println(strconv.FormatUint(uint64(perm), 8))
    fmt.Println("0" + strconv.FormatUint(uint64(perm), 8))
}

Output:

-rw-rw-r--
664
0664
664
0664

Upvotes: 4

Related Questions