验证 sha1sum 并打印损坏文件的目录和文件名

卢萨克

我有一系列包含 sha1sums 和 md5sums 文件的目录。这些文件的格式是通常的hash space space filename,每行一个哈希/文件。我想验证文件并打印出路径以及损坏文件的文件名。

find . -name SHA1SUMS -execdir echo "$PWD" sha1sum --quiet --check SHA1SUMS \; > logfile

(从这里修改)给出

./path1/SHA1SUMS
sda2.ntfs-ptcl-img.gz.aa: FAILED
blkdev.list: FAILED
Info-dmi.txt: FAILED
./path2/SHA1SUMS

而我正在寻找更多

./path1/sda2.ntfs-ptcl-img.gz.aa: FAILED
./path1/blkdev.list: FAILED
./path2/file: FAILED

输出类型。

弗拉桑
find . -name SHA1SUMS -exec sh -c '
  cd "${1%/*}" &&
  sha1sum --check --quiet "${1##*/}" 2>/dev/null |
    while IFS= read -r file
    do
      printf "%s\n" "${1%/*}/$file"
    done' sh {} \;

它的输出应该与您的问题中显示的示例相匹配,并且应该可以使用任意路径。

或者,使用awk而不是 shell 功能将SHA1SUMS的相对路径添加到每个文件名:

find . -name SHA1SUMS -exec sh -c '
  cd "${1%/*}" &&
  sha1sum --check --quiet "${1##*/}" 2>/dev/null |
    awk -v pre="${1%/*}" "{ print pre \"/\" \$0 }"' sh {} \;

请注意,根据其实现,sha1sum可能会打印更改的文件名。具体来说,GNU*sum实用程序会转义某些字符1,并且在检查模式下,\在需要转义的文件名前加上 a ,从而使获得的路径连接您的SHA1SUMS文件的相对路径和打印的文件名sha1sum不适合重用。

1手册的手册指的是 的手册)一般来说,“每个有问题的字符”。 sha1summd5sum

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

目录中文件的sha1sum

来自分类Dev

目录中文件的sha1sum

来自分类Dev

文件的R sha1sum

来自分类Dev

如何在不同时间用相同的sha1sum重新创建PHAR文件?

来自分类Dev

验证文件名与目录名匹配

来自分类Dev

比较tarball与sha1sum

来自分类Dev

验证Powershell中输入的文件名

来自分类Dev

验证Python中文件名的格式

来自分类Dev

Java文件名验证-getCanoncialPath()的影响

来自分类Dev

QStringList文件目录和文件名

来自分类Dev

QStringList文件目录和文件名

来自分类Dev

使用awk使用sha1sum进行哈希

来自分类Dev

如何使sha1sum在Mac OS X上运行?

来自分类Dev

使用awk使用sha1sum进行散列

来自分类Dev

kali.org上的Sha1Sum

来自分类Dev

在git-bash(MinGW)上安装sha1sum

来自分类Dev

在表单提交之前验证多个文件的文件名

来自分类Dev

从sha512sum的输出中禁止文件名

来自分类Dev

带有扩展名的文件名验证

来自分类Dev

Bash遍历目录和文件名

来自分类Dev

所需的Bootstrap验证程序文件名应在验证时通过验证

来自分类Dev

Java SHA1输出与Linux的sha1sum命令不同

来自分类Dev

带有sha1和sha1sum的hashdeep创建不同的结果

来自分类Dev

正则表达式验证文件名失败

来自分类Dev

Node.js递归验证fswrite的文件名

来自分类Dev

如何在bash脚本中验证文件名?

来自分类Dev

Python-需要文件名验证帮助

来自分类Dev

如何使用 Lavavel 标准函数验证上传的文件名

来自分类Dev

如何在java中验证文件名