Source File: go-coreutils/stat/main.go

package main

import (
  "fmt"
  "os"
  "flag"
  "log"
  "io/fs"
)

func PrintStat(stat fs.FileInfo) {
  fmt.Printf("File: %s\nSize: %d\nAccess: %v\nModify: %v",
   stat.Name(),
   stat.Size(),
   stat.Mode(),
   stat.ModTime())
}

func main() {
  flag.Parse()
  files := flag.Args()

  for _, fname := range files {
    f, err := os.Open(fname)
    if err != nil { log.Fatal(err) }
    defer f.Close()

    stats, err := f.Stat()
    if err != nil { log.Fatal(err) }

    PrintStat(stats)
  }
}