Golangでファイルやディレクトリのパーミッションを取得しようとした際、オブジェクトとして取得できてしまうのでどうやったら0644,0700といった形式で取得すればいいのかな?と少し手こずったので、備忘として残しておく。 以下のように、printfで"%04o"でパーミッションを数字として出力することができるようだ。
package main
import (
"fmt"
"os"
)
func main() {
file := "file.txt"
info, _ := os.Stat(file)
mode := info.Mode()
// オブジェクトなので、"0600"のような形式で取得したい場合はこのようにする
fmt.Printf("%04o\n", mode) // オブジェクトなので、"0600"のような形式で取得したい場合はこのようにする
}