查找签名丢失或旧的文件

查找签名丢失或旧的文件

要更新签名,/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 {} \;

相关内容