Olhando especificamente para o Dolphin com o Baloo, parece procurar os metadados de cada arquivo em seu domínio de pesquisa, mesmo se você estiver fazendo uma pesquisa simples de nome de arquivo. Quando eu rastrear o file.soprocesso, eu vejo as chamadas para lstat, getxattre getxattrmais uma vez para cada arquivo, e até mesmo para ..entradas. Essas chamadas do sistema recuperam metadados sobre o arquivo armazenado em um local diferente do nome do arquivo (o nome do arquivo é armazenado no conteúdo do diretório, mas os metadados estão no inode ). Consultar os metadados de um arquivo várias vezes é barato, pois os dados estariam no cache do disco, mas pode haver uma diferença significativa entre consultar os metadados e não os metadados.
findé muito mais inteligente. Ele tenta evitar chamadas desnecessárias ao sistema. Ele não liga getxattrporque não pesquisa com base em atributos estendidos. Ao percorrer um diretório, pode ser necessário chamar lstatnomes de arquivos não correspondentes, porque esse pode ser um subdiretório para pesquisar recursivamente ( lstaté a chamada do sistema que retorna os metadados do arquivo, incluindo o tipo de arquivo como regular / directory / symlink /…). No entanto, findpossui uma otimização: ele sabe quantos subdiretórios um diretório possui a partir de sua contagem de links e para de chamar lstatquando sabe que percorreu todos os subdiretórios. Em particular, em um diretório folha (um diretório sem subdiretórios),findapenas verifica os nomes, não os metadados. Além disso, alguns sistemas de arquivos mantêm uma cópia do tipo de arquivo na entrada do diretório, para que findnem precise ligar lstatse essa é a única informação necessária.
Se você executar findcom opções que exigem a verificação dos metadados, ele fará mais lstatchamadas, mas ainda não fará uma lstatchamada em um arquivo se não precisar das informações (por exemplo, porque o arquivo foi excluído por uma condição anterior). correspondente no nome).
Suspeito que outras ferramentas de pesquisa da GUI que reinventem a findroda sejam igualmente menos inteligentes que o utilitário de linha de comando que passou por décadas de otimização. O Dolphin, pelo menos, é inteligente o suficiente para usar o banco de dados de localização se você pesquisar "em todos os lugares" (com a limitação que não está clara na interface do usuário de que os resultados podem estar desatualizados).