Piero Asked: 2020-08-05 06:20:27 +0800 CST2020-08-05 06:20:27 +0800 CST 2020-08-05 06:20:27 +0800 CST 将 sha256 哈希值存储到亲属文件中 772 我想为文件夹中的每个日志文件生成 sha256 哈希,并将该哈希存储在以原始文件名命名的文件中,该文件名后缀为“.sha265”,位于同一文件夹中。例如,我想将哈希存储/path/file.ext到/path/file.ext.sha256 我成功生成了哈希,但未能创建 .sha256 文件。以下是如何生成哈希: find /data/dump/ -type f -name "*.log" -exec sha256sum {} \; 任何帮助,将不胜感激 !:) bash find filename hash 2 个回答 Voted dariofac 2020-08-05T06:55:06+08:002020-08-05T06:55:06+08:00 这应该有效: find /data/dump/ -type f -name "*.log" -exec sh -c "sha256sum {} | tee {}.sha256" \; 该sh -c部分称为内联脚本。请参阅此内容以供参考。 如果您只想保存 sha256,您可以使用awk管道化 sha256 实用程序: find /data/dump/ -type f -name "*.log" -exec sh -c "sha256sum {} | awk '{print \$1}' | tee {}.sha256" \; 前面$1需要反斜杠以避免不必要的参数扩展。 Best Answer sudodus 2020-08-05T06:55:46+08:002020-08-05T06:55:46+08:00 尝试使用以下测试命令 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。
这应该有效:
该
sh -c
部分称为内联脚本。请参阅此内容以供参考。如果您只想保存 sha256,您可以使用awk管道化 sha256 实用程序:
前面
$1
需要反斜杠以避免不必要的参数扩展。尝试使用以下测试命令
如果有效,请删除
echo
:单引号和双引号可以使其工作。如果文件名中有特殊字符(例如空格),则更加复杂。
它在测试目录中对我有用。如果它对您不起作用,您可以“查看”发生的情况并使用输出何时修改表达式
echo
。