Каков наилучший способ поиска файловой системы в Ubuntu с мгновенными результатами?

Каков наилучший способ поиска в моей файловой системе в Ubuntu и получения результатов практически мгновенно? Я использовал сома, трекер и обычный инструмент поиска, предоставляемый с Ubuntu.

Tracker ничего не находит, инструмент поиска ubuntu работает слишком медленно, а сом большую часть времени ничего не находит. У меня есть много файлов PDF и DJVU, к которым я хочу получить доступ. В Windows есть программа поиска по всему, что возвращает результаты практически мгновенно. Я хочу подобный инструмент Linux.

Пожалуйста, предоставьте подробный ответ, насколько это возможно, поскольку я новичок в Linux. Если такого инструмента нет в Ubuntu, какова вероятность, что я найду такой инструмент в других дистрибутивах Linux, например, Mandriva, Redhat?

7 ответов

Recoll может сделать это для вас. Он обеспечивает полнотекстовое индексирование практически для всех типов документов, которые вы можете себе представить, и обзор результатов, отсортированный по номерам страниц для документов PDF.

введите описание здесь

введите описание здесь

Вы можете установить его через центр программного обеспечения (поиск Recoll) или получить новейшую версию через Recoll PPA (включая объектив / объектив Unity). Сначала добавьте официальный репозиторий Recoll:

sudo add-apt-repository ppa:recoll-backports/recoll-1.15-on
sudo apt-get update

Если вы используете Ubuntu 13.04 и ниже, вам придется установить recoll-lens:

sudo apt-get install recoll recoll-lens

Для Ubuntu 13.10 и выше использовать unity-scope-recoll вместо:

sudo apt-get install unity-scope-recoll

Если вы выполняете установку в первый раз с PPA, убедитесь, что вы сначала прочитали:

Что такое PPA и как их использовать?

Безопасно ли добавлять PPA в мою систему и на что следует обращать внимание при "красных флажках"?

Вам нужно будет выполнить Recoll хотя бы один раз, чтобы построить поисковый индекс, прежде чем вы сможете использовать объектив / прицел Recoll.

Более подробную документацию по использованию Recoll можно найти здесь.

Для поиска только по именам файлов - игнорирование содержимого -
ты можешь использовать locate инструмент. Это очень быстро при поиске.

locate '*.pdf'

перечислит все файлы PDF. Смотрите страницу руководства для получения дополнительной информации.

$ locate --help
Usage: locate [OPTION]... [PATTERN]...

Search for entries in a mlocate database.

  -b, --basename         match only the base name of path names
  -c, --count            only print number of found entries
  -d, --database DBPATH  use DBPATH instead of default database (which is
                         /var/lib/mlocate/mlocate.db)
  -e, --existing         only print entries for currently existing files
  -L, --follow           follow trailing symbolic links when checking file
                         existence (default)
  -h, --help             print this help
  -i, --ignore-case      ignore case distinctions when matching patterns
  -l, --limit, -n LIMIT  limit output (or counting) to LIMIT entries
  -m, --mmap             ignored, for backward compatibility
  -P, --nofollow, -H     don't follow trailing symbolic links when checking file
                         existence
  -0, --null             separate entries with NUL on output
  -S, --statistics       don't search for entries, print statistics about each
                         used database
  -q, --quiet            report no error messages about reading databases
  -r, --regexp REGEXP    search for basic regexp REGEXP instead of patterns
      --regex            patterns are extended regexps
  -s, --stdio            ignored, for backward compatibility
  -V, --version          print version information
  -w, --wholename        match whole path name (default)

Я также много занимаюсь поиском в очень больших библиотеках PDF. Для меня это разочарование № 1 в Linux, которое заставляет меня скучать по MS Windows. Я попробовал все это на данный момент, и решение, на котором я сейчас остановился, заключается в использовании следующих программ в комбинации.

К сожалению, на данный момент ни один из них не находится в репозиториях Ubuntu и может быть нестабильным. Так что, если Recoll (сейчас в репозитории по умолчанию для Ubuntu 14.04 я верю?) Или что-то еще работает для вас, лучше придерживаться этого.

1) синапс

Установка: Прочтите этот пост для деталей, но в основном вы можете установить его, выполнив следующие команды в терминале.

sudo apt-add-repository ppa:synapse-core/testing
sudo apt-get update
sudo apt-get install synapse

положительный

  • Очень быстрые, умные результаты поиска
  • Если то, что вы хотите, не появляется сразу же, вы можете нажать вниз и перейти, чтобы узнать больше с помощью команды "Найти".

отрицательный

  • Искать только имена файлов, а не текст внутри.
  • Кажется, очень скучаю, особенно, прежде чем пытаться "найти".

2) Launchy

Установка: Загрузите пакет здесь.

Положительный:

  • Почти так же быстро, как синапс
  • Результаты очень всеобъемлющие.

Отрицательный:

  • Также ищет только имена файлов.
  • Вероятно, самый плохой из этих трех.

3) DocFetcher

Установка: Если вы не можете найти его где-нибудь в хранилище, вы застряли с переносной версией. Загрузите его здесь и следуйте инструкциям.

Положительный:

  • Поиск в тексте ваших PDF-файлов
  • Комплексные, но релевантные результаты, в логическом порядке (я обычно нахожу результаты в Recoll или Tracker совершенно безумными в сравнении)
  • Полная панель предварительного просмотра документа, так что вы можете увидеть больше файла, прежде чем открыть его (не только несколько строк)
  • Достаточно быстро

Отрицательный:

  • Трудно установить и запустить непосредственно в Ubuntu (например, без времени выполнения Java)
  • Гораздо медленнее, чем приложения, которые ищут только имена файлов

Надеюсь, Dash наверстает упущенное и сделает все это устаревшим, но в то же время эти три - в основном то, что я использую.

Другие варианты, возможно, стоит попробовать:

  • Gnome-Do может быть достойной альтернативой Synapse, но в последний раз я проверял, что он может индексировать только 5000 файлов, и этого мне недостаточно
  • pdfgrep иногда полезен, но медленен и не имеет графического интерфейса, который мне известен

Другой вариант - синапс.
Интегрирует результаты Zeitgeist.
В моей системе много документов, и я был удивлен, как быстро Synapse смог найти нужные мне файлы.

sudo apt-get установить синапс

ура

Для параметра командной строки "серебряный искатель", на мой взгляд, просто лучший. Гораздо быстрее чем find а также awkи имеет более простое использование:

ag <path>

Установить из Ubuntu 14.04

sudo apt-get install silversearcher-ag

Посмотрите на некоторые сравнения скорости с find а также awk

https://github.com/ggreer/the_silver_searcher

введите описание здесьВы также можете использовать gnome-search-tool . Вы можете получить это по sudo apt-get install gnome-search-tool

Следующий код Python вернет результаты поиска очень быстро. Просто измените второй параметр в fnmatch.fnmatch(file,'*.txt) к тому, что вы ищете. Это невероятно быстро.

import fnmatch
import os

for file in os.listdir('.'):
    if fnmatch.fnmatch(file, '*.txt'):
        print file
Другие вопросы по тегам