问题:
我想为文件夹中的每个日志文件生成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" ;
相关文章