5
找到 xargs shasum(过早)创建校验和文件本身的校验和,并且在检查时失败
我的问题(在带有的脚本中#!/bin/sh)如下:我尝试出于归档目的对目录中的所有文件进行校验和。具有所有文件名的校验和(在我的情况下为sha1)文件应位于同一目录中。假设我们有一个~/test包含文件f1和的目录f2。 mkdir ~/test cd ~/test echo "hello" > f1 echo "world" > f2 现在用 find -maxdepth 1 -type f -printf '%P\n' | xargs shasum 完全符合我的要求,它仅列出当前目录的所有文件并计算sha1和(maxdepth可能在以后更改)。STDOUT上的输出为: f572d396fae9206628714fb2ce00f72e94f2258f f1 9591818c07e900db7e1e0bc4b884c945e6a61b24 f2 不幸的是,当尝试使用 find -maxdepth 1 -type f -printf '%P\n' | xargs shasum > sums.sha1 生成的文件将显示自身的校验和: da39a3ee5e6b4b0d3255bfef95601890afd80709 sums.sha1 f572d396fae9206628714fb2ce00f72e94f2258f f1 9591818c07e900db7e1e0bc4b884c945e6a61b24 f2 并因此在以后失败shasum …