Como é que o mesmo comando find pode dar dois resultados diferentes?

4

Isso aconteceu comigo duas vezes (EDIT: muitas vezes e posso replicá-lo) agora. Estou trabalhando em um Raspberry Pi, procurando por um arquivo que eu já sei que existe e então eu digito este comando:

sudo find / -iname 'firefox_binary.py'

Na primeira vez que eu digitá-lo, ele é executado sem erros, mas não encontra o arquivo. No entanto, quando eu executo o mesmo comando apenas alguns segundos depois, ele o encontra.

É o mesmo comando, executado na mesma janela de terminal, sob o mesmo caminho, no mesmo sistema, com a mesma estrutura de arquivos, com apenas alguns segundos separando a primeira execução da segunda execução. Como esse resultado é possível?

    
por schulwitz 24.02.2016 / 22:10

2 respostas

1

Este é um bug real encontrado na versão 4.4.2, mas o bug foi corrigido na versão 4.6.0.

    
por 20.05.2016 / 10:49
2

Dadas as descobertas acima, você pode tentar restringir a pesquisa a /usr

sudo find /usr -iname 'firefox_binary.py'

ou ignore /sys de uma das maneiras a seguir, o que melhor se adequar ao seu caso de uso:

sudo find / -mount -iname 'firefox_binary.py'

sudo find / -not -path '/sys/*' -iname 'firefox_binary.py'

Outra, mas a solução mais feia da IMHO seria tentar acionar a população da (s) pasta (s) problemática (s) antes de pesquisar, e. g. com

ls /sys/kernel/debug/tracing/options

ou

cat /sys/kernel/debug/tracing/options/<some_file>

ou o que for preciso.

Eu também sugiro que você registre um relatório de bug com os mantenedores do seu find (provavelmente busybox ou findutils ). Eu acho que find não deveria apenas sair da recursão neste caso, e pelo menos não deve sem uma mensagem de erro.

    
por 25.02.2016 / 05:04