como encontrar um arquivo

1

Estou usando o servidor linux e um arquivo está faltando e preciso encontrar todos os arquivos correspondentes a um nome MyMissingFile ... como posso emitir um comando que faça uma pesquisa recrusiva de todos os diretórios na pasta do usuário e diga-me onde o arquivo é
Eu não sou um usuário root. Obrigado

    
por user50946 26.08.2010 / 23:22

3 respostas

3

Que tal

 cd <userfolder>
 find . -name <filename> -print

BTW, o nome do arquivo pode conter um padrão e

Assim

 find . -name '*MyMissingFile*' -print
    
por 26.08.2010 / 23:29
5

Existem várias maneiras de encontrar um arquivo.

O mais fácil é provavelmente usar o comando locate . Este comando usa um cache de arquivos conhecidos. Para usá-lo, você precisa ter certeza de que o cache está atualizado, usando updatedb . No seu caso, você terá que confiar que está atualizado, já que você não é root e não pode atualizar o banco de dados. Para usar locate , digite:

$ locate MyMissingFile

Se você quiser apenas arquivos chamados exatamente "MyMissingFile", use:

$ locate MyMissingFile | grep "/MyMissingFile$"

Agora, se você sabe em qual diretório seu arquivo está, você pode usar find . find não depende de um cache db e digitalizará recursivamente o diretório e imprimirá todos os arquivos que encontrar. Existem várias opções para filtrar os arquivos encontrados (consulte man find para listá-los), incluindo uma opção -name para filtrar o nome do arquivo. Use-o como tal:

$ find $yourdirectory -name MyMissingFile

que corresponderá aos arquivos cujos nomes são exatamente "MyMissingFile". Para coincidir com nomes que contenham "MyMissingFile", use:

$ find $yourdirectory -name "*MyMissingFile*"

Observe que locate é geralmente muito mais rápido que find , pois tem as respostas em cache, enquanto find precisa ler todos os arquivos no diretório especificado.

    
por 26.08.2010 / 23:33
1
locate -r '/MyMissingFile$'

é mais eficiente que as sugestões usando o grep. Mas nem toda versão do locate aceita -r (embora o locate no GNU findutils tenha).

    
por 12.02.2012 / 16:30

Tags