如果特定目录上有 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)
}
我使用以下命令检查目录是否已挂载。
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)
}