Como posso encontrar arquivos mais rapidamente do que encontrar ou localizar?

6

Eu tenho usado o comando find para encontrar arquivos no meu disco rígido de 1 tb. demora muito tempo. então usei o locate que provou ser mais rápido com atualização regular usando o updatedb. Mas a limitação do locate é que não consigo encontrar arquivos com determinado tamanho ou tempo modificado / criado. Você pode me sugerir algumas idéias sobre como encontrar arquivos com mais velocidade ou, nesse caso, como canalizar a saída do comando locate de forma que todas as outras informações como tamanho, tempo, etc. possam ser exibidas ou redirecionadas para um arquivo.

    
por Chaitanya 12.03.2012 / 10:19

6 respostas

1

Eu não vi uma resposta que chegue perto dos desejos de Chaitanya. Se você quiser pesquisar em filename, uma combinação de locate, find, ls e grep poderia ser suficiente. Mas acho que o Chaitanya quer procurar por exemplo "todos os arquivos criados antes de 2011". Isso pode perfeitamente feito com o find, mas posso imaginar que levará muito tempo pesquisando através de 1 TB (depende mais da quantidade de arquivos, não necessariamente do tamanho total). Para acelerar isso, acho que a indexação é inevitável. O problema de localizar (indexar com updatedb) é que ele não indexa o tempo de criação.

Então, o que o Chaitanya precisa é de algo que indexe os atributos necessários dos arquivos (nome do arquivo, tamanho do arquivo, data de criação, mais?). E mais tarde algo que pode pesquisar nesses atributos. Tanto quanto eu sei, não há solução out-of-the-box para isso no Ubuntu.

Um comentário importante de Chaitanya: "Agora, o problema é que estou projetando uma web gui baseada em php ...". Porque o seu problema parece bastante específico, talvez você queira construir alguma coisa. Algumas sugestões:

  • Indexar os arquivos em um banco de dados (com o cronjob) e usar o SQL para pesquisar.

  • Use o Lucene para indexar e pesquisar ( Zend Lucene para PHP)

por Rachid 22.06.2012 / 16:52
0

Você pode tentar o Rastreador . Ele tem um daemon que aguarda por alterações de arquivo e atualiza um banco de dados com todos os metadados possíveis e um cliente que você pode usar para procurar por arquivos. Observe que ele indexa apenas o diretório do usuário, não todo o disco rígido.

O principal dwback é que ele precisa de tempo de CPU para indexar, então use-o somente se o seu computador tiver energia de sobra.

Você precisará instalar o servidor e o cliente, eles são denominados tracker e tracker-gui. Se você pesquisar por rastreador no Centro de Software, eles serão as duas primeiras correspondências. Se você preferir instalá-los a partir da linha de comando:

sudo apt-get install tracker tracker-gui
    
por Javier Rivera 12.03.2012 / 12:28
0

Resposta ao comentário:

ls -la "$(locate -d external.db "Duel of Fates (Darth ")"

produz:

-rw-rw-r-- 1 user group 4075134 2012-03-30 22:37 /home/user/Music/Star Wars: Episode 1 - Duel of Fates (Darth Maul's Theme).mp3

Thx @Oli no bate-papo do AskUbuntu por me dar uma dica para "algo" para contornar os escapes do shell

    
por RobotHumans 12.03.2012 / 12:47
0

O problema com o locate é que ele apenas coleta informações de arquivos ocasionalmente em uma programação cron regular. Você se você precisar mlocate para atualizar suas informações, basta executar este

$ sudo /etc/cron.daily/mlocate

Se você precisar de uma solução que seja mais "em tempo real" e atualize constantemente, sugiro usar algo especificamente projetado para monitorar seu sistema de arquivos, como tracker-gui , como Javier Rivera afirmou.

Para redirecionar a saída de locate para um arquivo, basta usar uma seta > em vez do caractere pipe | . (Uma seta irá escrever um arquivo de saída, se já existir. Duas setas serão anexadas a um arquivo de saída, se ele já existir.)

$ locate filename > output.txt  # Overwrite
$ locate filename >> output.txt # Append
    
por Sepero 01.06.2012 / 16:01
0

Use "encontrar opção Parâmetro". Veja "man find" mais detalhes. Use locate para encontrar um documento de maneira rápida e fácil, por exemplo. "localizar * .jpg"

    
por user49695 12.03.2012 / 12:10
0

Use gnome-search-tool

Fornece

  • Conteúdo do arquivo
  • Data de modificação
  • Tamanho
  • Vazio de arquivos
  • Proprietário / grupo
  • Exclusão de padrão de nome
  • Nome da correspondência de expressão regular
  • Arquivos ocultos e de backup
por totti 27.04.2013 / 12:01

Tags