Pesquise um arquivo no sistema unix

Pesquise um arquivo no sistema unix

Estou tentando encontrar um arquivo usando os comandos localizar e localizar.

locateO comando é mais rápido, mas requer atualização do slocatebanco de dados. E findo comando é mais lento, mas não requer atualizações.

Estou tentando usar um tipo de prdsistema.

Alguém poderia sugerir um comando que seja mais rápido e possa ser usado com usuários de nível inicial para meu script de shell, por favor?

Responder1

Considerando que os arquivos estão em alguns subdiretórios aninhados com não mais do que dois ou três de profundidade, você pode usar um comando (possivelmente) mais rápido, como

(cd /path/to/directory; ls *.txt */*.txt */*/*.txt)

Como você de alguma forma conseguiu responder sua própria pergunta, use, updatedbmas comacelerando a localização, como:

$ updatedb -o /home/rahul/my.db -U /home/rahul/ -e "not/in/this/directory1 not/in/this/directory2"
$ locate -d /home/rahul/my.db            ### point locate to use your db

veratualizadob homempara obter ajuda nisso.


De acordo com a sugestão do @cas, alternativamente, redirecione a saída findpara um arquivo e execute grep-o repetidamente. O texto simples ocupa mais espaço do que um updatedbbanco de dados, mas é muito mais rápido de pesquisar.

Por exemplo:

find /path/to/directory > /tmp/files.list
grep -i file.xml /tmp/files.list
grep -i anotherfile.xml /tmp/files.list

informação relacionada