如果特定目录上有 mount --bind,如何检查 golang?

How to check in golang if a particular directory has a mount --bind on it?

我使用以下命令检查目录是否已挂载。

res := exec.Command("mount", "|", "grep", toDir, ">", "/dev/null").Run()

但是returnsexit status 1不管一个目录是否挂载了

挂载 | grep /path/to/dir > /dev/null

在命令行上工作正常。

如何获取信息?

你可以使用语言机制来管道化,比如

c1 := exec.Command("mount")
c2 := exec.Command("grep", toDir)
c2.Stdin, _ = c1.StdoutPipe()
c2.Stdout = os.DevNull
c2.Start()
c1.Run()
c2.Wait()

由于您的命令涉及管道,您可以将其作为命令字符串传递给bash,而不是直接执行它。像这样的东西应该有用。

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    res, _ := exec.Command("sh", "-c", "mount | grep /home").Output()
    fmt.Printf("%s", res)
}