将 sha256 哈希值存储到相关文件中

将 sha256 哈希值存储到相关文件中

我想为文件夹中的每个日志文件生成 sha256 哈希,并将该哈希存储在同一个文件夹中以原始文件名命名的文件中,后缀为“.sha265”。例如,我想将哈希存储/path/file.ext/path/file.ext.sha256

我成功生成了哈希值,但无法创建 .sha256 文件。以下是生成哈希值的方法:

find /data/dump/ -type f -name "*.log" -exec sha256sum {} \;

任何帮助,将不胜感激 ! :)

答案1

尝试以下测试命令

find /data/dump/ -type f -name "*.log" -exec echo bash -c "sha256sum '{}' > '{}'.sha256" \;

如果有效,请删除echo

find /data/dump/ -type f -name "*.log" -exec bash -c "sha256sum '{}' > '{}'.sha256" \;

单引号和双引号的作用是让它工作。如果文件名中有特殊字符,例如空格,那就更加复杂了。

它在测试目录中对我有用。如果它对你不起作用,你可以“查看”发生了什么,并在echo出现输出时使用输出修改表达式。

答案2

这应该有效:

find /data/dump/ -type f -name "*.log" -exec sh -c "sha256sum {} | tee {}.sha256" \;

sh -c部分称为内联脚本。请参阅以供参考。

如果你只想保存 sha256,你可以使用管道传输 sha256 实用程序awk

find /data/dump/ -type f -name "*.log" -exec sh -c "sha256sum {} | awk '{print \$1}' | tee {}.sha256" \;

$1前面需要使用反斜杠,以避免不必要的参数扩展。

相关内容