Existe uma maneira de usar o find para filtrar uma lista de arquivos?

0

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 :

não-recursivo
# 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?

    
por Kuba Ober 23.02.2018 / 18:20

0 respostas