Я пытаюсь получить cksum одного файла, используя Go, выполнив команду cksum
.
Получение ниже сообщение об ошибке:
exec: "cksum": executable file not found in $PATH
Ниже приведен код:
cmd := exec.Command("/bin/cksum",dst)
Спасибо.
Я пытаюсь получить cksum одного файла, используя Go, выполнив команду cksum
.
Получение ниже сообщение об ошибке:
exec: "cksum": executable file not found in $PATH
Ниже приведен код:
cmd := exec.Command("/bin/cksum",dst)
Спасибо.
cmd := exec.Command("/usr/bin/cksum",dst)
Из документации для 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", …)
и пусть это будет там, где когда-либо она существует на пути. В качестве альтернативы вы должны запустить which cksum
, который на почти каждой системе unix даст: /usr/bin/cksum
.
Но еще лучше сделайте свой код переносимым на любым OS, который может работать Go и использовать hash/crc32
. Или еще лучше, если вы можете удалить какие-либо требования о необходимости использовать CRC32 (который является то, что древний cksum
использует), выбрать один из других намного превосходит хэшей из hash/…
, crypto/…
(например sha256), или golang.org/x/crypto/…
(например, sha3).
Вы уверены, что 'cksum' фактически установлен под'/bin'? – Mureinik