当我在单个文件上从多个目录运行 shasum 时,我得到了我期望并最终想要的:
shasum 2010/Whitmore/The\ Astrophysical\ Journal\ 2010\ Whitmore.pdf
5da84767c2301f29ed3b7db7542167150fe63b8b 2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
当我从同一目录运行 find 时,它列出的文件没有问题:
find 2010/Whitmore/* | xargs -0
2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
我一直在尝试编写一个 bash 脚本(或仅一行),它将返回 find (有很多)找到的每个文件上的单个 shasum 及其文件名。在我尝试过的任何组合中,将文件名传送到 shasum 都不起作用。
我希望问题出在文件名中的空格上,但是在 Google 搜索之后,尝试了一些 find/xargs/ls 组合(以及似乎对其他人有用的各种组合,包括 -print0 标志),我仍然无法弄清楚找出在这些目录下的每个文件上运行 shasum 的方法。
我想要的输出示例(假设 Whitmore 下有 2 个文件)以防有完全不同的方式获得此结果:
find 2010/Whitmore/* | xargs -0 | shasum
5da84767c2301f29ed3b7db7542167150fe63b8b 2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
4d2b0a6da00473133b4617d67d9249da3d05cc19 2010/Whitmore/arXiv 2010 Whitmore.pdf
我在 Mac OSX 10.6 上