exec:" cksum":golang中$ PATH中找不到可执行文件

时间:2015-04-08 06:29:21

标签: go

我试图通过执行命令cksum使用Go来获取一个文件的cksum。

获得以下错误:

exec: "cksum": executable file not found in $PATH

以下是代码:

cmd := exec.Command("/bin/cksum",dst)

感谢。

2 个答案:

答案 0 :(得分:2)

来自exec.Command的文档:

  

如果name不包含路径分隔符,则Command会使用LookPath将路径解析为完整名称(如果可能)。否则它直接使用名称。

因此,使用cmd := exec.Command("cksum", …)稍微好一点,然后在路径上找到它的位置。 或者,您应该运行which cksum,几乎每个unix系统都会运行/usr/bin/cksum

但更好的是,让您的代码可以移植到可以运行Go并使用hash/crc32的任何操作系统。 或者甚至更好,如果你可以删除任何必须使用CRC32的要求(这是古代cksum使用的), 选择其中一个远优于哈希 hash/…crypto/…(例如sha256), 或golang.org/x/crypto/…(例如sha3)。

答案 1 :(得分:1)

  

大多数可执行二进制文件都存在于/ usr / bin下   目录,所以你需要修改你的代码如下。

cmd := exec.Command("/usr/bin/cksum",dst)