Каков наилучший способ поиска файловой системы в 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 наверстает упущенное и сделает все это устаревшим, но в то же время эти три - в основном то, что я использую.
Другие варианты, возможно, стоит попробовать:
Другой вариант - синапс.
Интегрирует результаты Zeitgeist.
В моей системе много документов, и я был удивлен, как быстро Synapse смог найти нужные мне файлы.
sudo apt-get установить синапс
ура
Для параметра командной строки "серебряный искатель", на мой взгляд, просто лучший. Гораздо быстрее чем find
а также awk
и имеет более простое использование:
ag <path>
Установить из Ubuntu 14.04
sudo apt-get install silversearcher-ag
Посмотрите на некоторые сравнения скорости с find
а также awk
Вы также можете использовать 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