Usando find para procurar arquivos contendo uma palavra

0

Eu quero usar o comando find para encontrar todos os arquivos no sistema que tenham a palavra fsck.

Eu tentei

find / -iname fsck

e começou a pesquisar arquivos, mas tudo foi negado. Quando tento executar com sudo , a linha de comando parece travar.

Estou no caminho certo aqui? Eu estou realmente perplexo sobre como fazer isso ..

    
por Michael James 25.02.2015 / 22:45

3 respostas

2

Só para ter certeza de que foi um erro de digitação, vejo que seu comando tem fckd em vez de fsck.

Normalmente, como eu faço isso:

find / -iname '*fsck*'

Eu não ficaria surpreso se o comando demorasse um pouco para ser concluído, mas ele deveria mostrar os resultados conforme eles são exibidos.

O principal é que você precisa que o padrão seja um glob como você usaria com 'ls'.

Colocar o padrão entre aspas simples faz com que seu shell não tente expandir * fsck * em uma lista de arquivos correspondentes em seu diretório atual antes de executar o comando find. Por exemplo, se você não tivesse arquivos que correspondessem * fsck * em seu diretório atual, o comando seria executado:

find / -iname

Ou se você tivesse 3 arquivos [fsck.a fsck.b fsck.c] em seu diretório atual, o comando executado acabaria sendo

find / -iname fsck.a fsck.b fsck.c

Ao escapar ou citar o * fsck *, o comando termina como você espera:

find / -iname *fsck*

Eu acredito que você também pode escapar dos * com \ * fsck \ *.

Espero que ajude.

    
por zolan 26.02.2015 / 00:33
2

Ou, para texto dentro de arquivos como apontado por muru, mas eu não fiz (obrigado) ter pontos de reputação para acompanhamento.

grep -sinIR fsck * para g pesquisa lobaly r egular e xpression e p rint - s carregando erros, i gnando caso, retornando linha n umbers, eu gnore arquivos binários, e faça R ecursivamente, * todos os arquivos no diretório

Como sparhawk apontou, o locate é uma ferramenta útil. locate -i nAmE para ignorar maiúsculas, -A para termos de pesquisa mutiple, por exemplo, locate -iA fsck txt que retornará todos os arquivos inclusive de fsck e txt no nome com um banco de dados atualizado . / p>     

por Nodak 26.02.2015 / 04:17
1

Para encontrar arquivos que contenham fsck, você precisa usar curingas.

find / -iname '*fsck*'

Você está certo de que o sudo é necessário. Foi "enforcamento" porque precisa percorrer todo o seu sistema de arquivos, o que leva muito tempo. Como alternativa, recomendo usar locate , que usa um índice pré-compilado e, portanto, é muito mais rápido. Este índice geralmente é atualizado regularmente por um cronjob, mas você pode garantir que está atualizado com

sudo updatedb

Depois, você pode pesquisar seu arquivo com

sudo locate fsck
    
por Sparhawk 25.02.2015 / 23:02