bash - 将sha哈希存储到相对文件

分享于 

2分钟阅读

ubuntu

  繁體

问题:

我想为文件夹中的每个日志文件生成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,则可以使用awk传递sha256实用程序:


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





文件  files  SHA  REL  Store  BASH  
相关文章