OS

  • func Chdir(dir string)//error 将当前工作目录更改为dir目录

  • func Getwd()(dir string,err error) //获取当前目录,和linux中pwd类似

  • func Chomd(name string,mode FileMode)error //更改文件的权限(读、写、执行)

  • func Chown(name string,uid,gid int)error //更改文件拥有者owner

  • func Chtimes(name string,atime time.Time,mtime time.Time)error //更改文件的访问时间和修改时间,atime->访问时间,mtime->更改时间

  • func Clearenv() // 清除所有环境变量

  • fun Exit(code int) //系统退出,code=0代表正常退出,非0为异常退出

  • func os.Expand(s string,mapping func(string)string)string

    func main() {
        mapping := func(key string) string {
            m := make(map[string]string)
            m = map[string]string{
                "world": "kitty",
                "hello": "hi",
            }
            if m[key] != "" {
                return m[key]
            }
            return key
        }
        s := "hello,world"            //  hello,world,由于hello world之前没有$符号,则无法利用map规则进行转换
        s1 := "$hello,$world $finish" //  hi,kitty finish,finish没有在map规则中,所以还是返回原来的值
        fmt.Println(os.Expand(s, mapping))
        fmt.Println(os.Expand(s1, mapping))
    
    }

Time

Time 时间对象,Duration 时间间隔

  • Now()Time

    返回一个Time当前时间对象

  • Add(u Time)Duration

    当前时间加上time之后的时间

  • func Sub(u Time) Duration

    当前时间减去u剩余的时间

  • (t Time)After(u Time)bool

    如果t时间在u之后 return true else return false

  • (t Time)Before(u Time)bool

    如果t实际在u之前 return true else return false

Path

  • func Walk(root string,walkFn walkFunc)error

    遍历指定目录(包括子目录),对便利的项目用walkFn函数处理

  • func walkFn(path string,info os.FileInfo,err error)error

    path为当前文件或目录路径,info为文件描述信息,通常重写该方法,可以做到在遍历目录时对目录的一些操作

  • func Match (pattern,name string)

    根据pattern进行匹配 找到指定目录或文件名

fsnotify

使用 Go 语言实现了跨平台的文件系统变化通知

exec

  • func Command(name string,arg ...string) *Cmd

    name是命令名称如:ls,arg是命令的参数如:-lah

  • Type Cmd

    type Cmd struct {
        // Path是将要执行的命令的路径。
        //
        // 该字段不能为空,如为相对路径会相对于Dir字段。
        Path string
        // Args保管命令的参数,包括命令名作为第一个参数;如果为空切片或者nil,相当于无参数命令。
        //
        // 典型用法下,Path和Args都应被Command函数设定。
        Args []string
        // Env指定进程的环境,如为nil,则是在当前进程的环境下执行。
        Env []string
        // Dir指定命令的工作目录。如为空字符串,会在调用者的进程当前目录下执行。
        Dir string
        // Stdin指定进程的标准输入,如为nil,进程会从空设备读取(os.DevNull)
        Stdin io.Reader
        // Stdout和Stderr指定进程的标准输出和标准错误输出。
        //
        // 如果任一个为nil,Run方***将对应的文件描述符关联到空设备(os.DevNull)
        //
        // 如果两个字段相同,同一时间最多有一个线程可以写入。
        Stdout io.Writer
        Stderr io.Writer
        // ExtraFiles指定额外被新进程继承的已打开文件流,不包括标准输入、标准输出、标准错误输出。
        // 如果本字段非nil,entry i会变成文件描述符3+i。
        //
        // BUG: 在OS X 10.6系统中,子进程可能会继承不期望的文件描述符。
        // http://golang.org/issue/2603
        ExtraFiles []*os.File
        // SysProcAttr保管可选的、各操作系统特定的sys执行属性。
        // Run方***将它作为os.ProcAttr的Sys字段传递给os.StartProcess函数。
        SysProcAttr *syscall.SysProcAttr
        // Process是底层的,只执行一次的进程。
        Process *os.Process
        // ProcessState包含一个已经存在的进程的信息,只有在调用Wait或Run后才可用。
        ProcessState *os.ProcessState
        // 内含隐藏或非导出字段
    }

命令

go generate

命令是在Go语言 1.4 版本里面新添加的一个命令,当运行该命令时,它将扫描与当前包相关的源代码文件,找出所有包含//go:generate的特殊注释,提取并执行该特殊注释后面的命令。

//go:generate go run main.go