Golangでファイルのパーミッションを指定してファイルを作成する
Pocket

だいぶ前にGolangでパーミッションを指定してファイルを作成したいということがあったので、備忘として残しておく。
以下のように、permで指定してやればいい。

package main

import (
        "fmt"
        "io/ioutil"
        "os"
        "strconv"
)

func main() {
        content := []byte(
                `test line 1
test line 2
test line 3
test line 4
test line 5`)
 
        // パーミッションを指定せずに作成する
        ioutil.WriteFile("./go-file1", content, os.ModePerm)

        // パーミッションを指定する場合
        perm := "0111"
        perm32, _ := strconv.ParseUint(perm, 8, 32)
        fmt.Println(perm32)
        ioutil.WriteFile("./go-file2", content, os.FileMode(perm32))
 
        // 既存のファイルのパーミッションを変える場合
        _ = os.Chmod("./go-file1", os.FileMode(perm32))
        _ = os.Chmod("./go-file1", 0147) // 数字を直接指定してもできる
}

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*