Existem muitas razões para usar o find ao invés do rm. Especialmente se a sua versão do find suporta a opção "-delete":
- Se seus nomes de arquivos contiverem espaços ou novas linhas, o comando
rm
não funcionará e poderá até mesmo excluir os arquivos incorretos.
- Se houver muitos arquivos para excluir, o comando falhará por exceder o comprimento máximo da linha de comando.
Se a sua pesquisa for compatível com "-delete":
find -type f -path "*omero*" -delete
Se a sua localização não suportar "-delete" e exija um caminho inicial:
find . -type f -path "*omero*" -print0 | xargs -0 rm
Esse ' -print0
... -0
' é importante. Isto diz para localizar nomes de arquivos de saída delimitados por NUL, e xargs -0 irá esperar nomes de arquivos delimitados por NUL. Desta forma, espaços e novas linhas em seus nomes de arquivos não causam problemas.
Além disso, estou usando -path
em vez de -name
para corresponder mais de perto ao que "locate" fornece a você. No entanto, isso significa que um arquivo será excluído se estiver sob um diretório com "omero". Provavelmente não é isso que você deseja e você deve usar -name
.
Com isso fora do caminho, se você tiver certeza do que obteve no final, coloque sudo
na frente da primeira versão. Ou sudo
na frente de ambos os find
e xargs
no segundo.