![查找签名丢失或旧的文件](https://linux22.com/image/151462/%E6%9F%A5%E6%89%BE%E7%AD%BE%E5%90%8D%E4%B8%A2%E5%A4%B1%E6%88%96%E6%97%A7%E7%9A%84%E6%96%87%E4%BB%B6.png)
要更新签名,/boot
我想使用 find (GNU findutils) 4.6.0。
我知道我可以循环并检查签名是否与 gpg 匹配,但我想知道如何-newer
在同一目录中使用 find with 并以某种方式使用当前匹配的模式来测试 file.img 是否不比 file 新。 img.sig。这很容易做到吗?
即类似:
sigs=(`find /boot -type f -iname '*.sig'`)
for sig in ${sigs[@]}; do
file=${sig%*.sig}
find /boot -type f -name "$file" -newer /boot -type f -name "$sig"
done
答案1
带结果的循环find
通常可以替换为find -exec
:
尝试这样的事情,
find /boot -type f -iname '*.sig' \
-exec sh -c 'find /boot -name "${1%.sig} -newer "$1"' sh {} \;