Поддерживает ли файловая система linux быстрый поиск / индексацию файлов?


21

Интересно, почему нет инструмента, позволяющего быстро находить файлы на своем жестком диске, как это делает «поиск по всему». Просто введите часть имени файла, и все файлы, содержащие ключевое слово, будут отображаться мгновенно. Разве нельзя разработать программу для записи имен всех файлов в некотором каталоге в базе данных, чтобы вы могли быстро искать в базе данных имена файлов?


Незначительная мелочь, но это может помочь вам лучше понять систему. В общем, файловые системы напрямую не поддерживают поиск файлов или создание индексов. Работа файловой системы заключается в хранении файлов. Поиск и индексация осуществляется различными утилитами. Это сделано так, потому что более простая файловая система = меньшая вероятность ошибок, и это позволяет пользователю настраивать уровень построения индекса и какие области должны быть целями.
Перкинс

Ответы:


13

Запустите sudo updatedbи locate [ filename or part ]
updatedbобновите базу данных индекса.
Если вы хотите найти программу, запуститеwhereis [ program name ]


1
Хорошо, но как найти поиск в каком-то определенном каталоге в Linux Mint?
hvjkjdtmkgh

хорошо для этой цели вы можете использовать findкоманду, используйте ее следующим образом. find [path to directory] | grep "file name or part"Это будет искать рекурсивно, поэтому вы можете просто искать внутри базового каталога и автоматически искать файл в любом подкаталоге.
Gufran

Для какого-то конкретного каталога:locate foo | grep /home/bar/baz
Скотт Северанс

Спасибо, но не могли бы вы привести пример? Я совершенно новичок в Linux. В Windows вы пишете D: \\ foldername \ etc Что эквивалентно в Linux? Кроме того, этот инструмент имеет графический интерфейс, чтобы я мог открыть файл напрямую?
hvjkjdtmkgh

Утилиты, как locateили findне имеют встроенного графического интерфейса, вы можете использовать сторонние инструменты, такие как catfish. Для установки инструмента вы можете искать catfishв центре программного обеспечения или запустить эту команду sudo apt-get install catfish. После установки вы можете открыть программу из Unity Dash. Что касается структуры файлов в linux, то здесь нет C, Dдисков, все разделы монтируются как каталог внутри root, то есть /(обратная косая черта). так что все идет прямо внутри /, как ваш домашний каталог (так же, как ваш пользовательский каталог в Windows) находится внутри/home/
Gufran

5

Если вы ищете только имена файлов, он уже делает это, он называется locate

Для более сложного поиска вы можете посмотреть трекер: https://wiki.ubuntu.com/Tracker (см. Также этот вопрос: Каковы альтернативы OS X Spotlight? )

Дополнительные параметры вы можете найти здесь: https://help.ubuntu.com/community/FindingFiles


Как я могу найти поиск в определенном каталоге?
hvjkjdtmkgh

Это еще один вопрос, но вы можете найти ответ здесь serverfault.com/questions/313733/… :)
Nanne

но, похоже, что ссылка на поиск файлов на help.ubuntu - довольно хорошее описание вашего выбора?
Нанн

@hvjkjdtmkgh: см. мой комментарий к ответу Гуфрана о том, как искать в определенном каталоге.
Скотт Северанс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.