2015-04-08 56 views
0

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

获取以下错误:

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

下面是代码:

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

感谢。

+3

你确定'cksum'实际安装在'/ bin'下吗? – Mureinik

回答

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

从文档exec.Command

If name contains no path separators, Command uses LookPath to resolve the path to a complete name if possible. Otherwise it uses name directly.

所以这是稍微好一点的使用cmd := exec.Command("cksum", …),让以往任何时候都存在的路径在哪里被发现。 或者你应该运行几乎每个unix系统都会运行的which cksum/usr/bin/cksum

但更好的是,让您的代码可移植到任何 OS可以运行Go并使用hash/crc32。 甚至更​​好,如果你能去除不必使用CRC32(这是古cksum使用), 挑其他远远优于哈希一个从 hash/…crypto/…(如SHA256)的任何要求, 或golang.org/x/crypto/…(例如sha3)。

相关问题