Eu tenho a saída de locate --existing --regex que foi muito rápida para obter. Um find semelhante leva várias horas - é um volume enorme.
Gostaria de aplicar mais filtros find a esta lista de arquivos.
O único atalho que encontrei é aplicar a mesma pesquisa duas vezes: primeiro, obtenha uma lista de diretórios com esses arquivos usando locate e, em seguida, execute-a por meio de um find :
# Abandoned Office temporary files
PATTERN='/foo/.+/~$[^/]+'
# locate doesn't re-enter the same path so sort before uniq is unnecessary.
# --existing is unnecessary, since locality of reference and thus
# performance and load are better when stat-ing the entries is done only
# once by 'find'
locate --regex "$PATTERN" | xargs -d\n -L1 dirname -- | uniq | \
while read -r path; do
find "$path" -maxdepth 0 -regex "$PATTERN" -type f -ctime +30 -exec rm '{}' ';'
done
Existe uma maneira menos complicada de fazer isso?