Estou tentando encontrar um arquivo usando os comandos localizar e localizar.
locate
O comando é mais rápido, mas requer atualização do slocate
banco de dados. E find
o comando é mais lento, mas não requer atualizações.
Estou tentando usar um tipo de prd
sistema.
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, updatedb
mas 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 find
para um arquivo e execute grep
-o repetidamente. O texto simples ocupa mais espaço do que um updatedb
banco 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