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?