golang cmd.exec 执行命令后报错 No such file or directory
如果在你确定这个目录或者文件一定存在的情况下。这个问题有可能是因为exec执行的命令是管道操作或者重定向输出到文件导致的。
所谓的管道操作是指:
在命令行中将一个命令的输出直接作为另一个命令的输入,形成一条"流水线"。
比如
ls -l | grep ".txt"
这里的 | 就是管道符,表示将 ls -l 命令的输出传递给下一个命令
然后重定向输出文件指的是使用 > ,>>符号的命令
ls -l > output.txt
如何解决这种问题呢?使用 bash -c 或者 sh -c
cmd := exec.Command("/bin/bash","-c","ls -l > output.txt")
这种方式就可以避免 No such file or directory的情况了。