package main import ( "flag" "github.com/fsnotify/fsnotify" "log" ) func main() { log.SetFlags(log.LstdFlags | log.Lshortfile) var name = flag.String("f", "", "File path") flag.Parse() if *name == "" { log.Fatal("File path is empty.") } watcher, err := fsnotify.NewWatcher() if err != nil { log.Fatal(err) } if err = watcher.Add(*name); err != nil { log.Fatal(err) } log.Println("Start fsnotify.") for { select { case ev := <-watcher.Events: log.Println(ev.Name, ev.Op.String()) case er := <-watcher.Errors: log.Println(er.Error()) } } }