Há um sinalizador para find
e é usado assim:
find "/media/My Book" -name "OP_CACHE.IDX" -exec ls {} \;
Isso também pode ser usado:
find "/media/My Book" -name "OP_CACHE.IDX" -print0 | xargs -0 ls
(O argumento -print0
informa find
para separar nomes de arquivos por bytes nulos, não por novas linhas. Na maioria dos sistemas de arquivos modernos (ext3 e NTFS por exemplo), nomes de arquivos podem conter não apenas espaços mas também novas linhas, abas, tudo exceto um byte nulo.Embora seja muito improvável que o seu próprio disco tenha esses nomes de arquivos, eu tento ser cuidadoso com isso.
Se você for excluir apenas os arquivos depois, find
também poderá fazer isso:
find "/media/My Book" -name "OP_CACHE.IDX" -delete
(Você pode até usar -print -delete
para ver cada arquivo enquanto está sendo removido).
Se você precisa usar um loop bash, isso funcionará na maioria das vezes:
find "/media/My Book" -name "OP_CACHE.IDX" | while read file; do ls "$file" done
Mas veja o comentário sobre -print0
acima.