Назад | Перейти на главную страницу

Как найти файл во FreeBSD

Я пытаюсь найти все копии example.filename на моем сервере FreeBSD. Какой лучший / самый простой / самый эффективный способ сделать это?

locate filename

Намного быстрее, чем find, если вы используете службу поиска, и она находит только те файлы, которые существовали в то время updatedb последний запуск (обычно в ночь перед выполнением задания cron).

Вы жестяная банка бегать updatedb вручную, но это даже медленнее, чем то find Cletus предлагает, и требует root. Иногда я обновляю базу данных вручную после установки кучи нового.

find / -name example.filename

Иногда вам нужно найти файлы на определенном уровне каталогов. В этом случае может быть удобно использовать подстановочные знаки оболочки:

ls /data/*/example.filename

Очевидно, это работает, только если у вас жесткая структура каталогов.

Если у вас установлен locate (он же slocate), тогда

locate example.filename

locate каждую ночь выполняет задание cron, которое переиндексирует все файлы на вашем компьютере. По этой причине он не всегда актуален.

locate

Как уже упоминалось, locate это быстрый способ найти файл. Эта команда использует предварительно скомпилированный индекс имен файлов и папок. В этой базе данных имен выполняется поиск, а не сканирование по вашей файловой системе.

locate example.filename 

Чтобы регистр не учитывался, добавьте -i.

locate -i eXAmPle.FileName

Обновить locate база данных

База данных, используемая locate должны быть актуальными. После выполнения установки или загрузки, которые могут содержать желаемый файл, вы должны обновить locate база данных.

В locate база данных в конечном итоге будет автоматически обновлена ​​вашей системой FreeBSD. Есть еженедельный набор дел, в который входит это задание. Эти обязанности перечислены в /etc/periodic/weekly/310.locate сценарий.

Самый простой и безопасный способ принудительно выполнить раннее обновление locate база данных заставляет выполнять еженедельный набор дел прямо сейчас.

sudo periodic weekly

Или вы даже можете заставить выполнять все обычные обязанности по дому. Возможно, вы захотите сделать это сразу после установки новой системы FreeBSD.

sudo periodic daily weekly monthly

Если вы используете другие способы обновления locate database, вы можете получить сообщение о небезопасности, раскрывающее имена всех файлов вашей системы любому пользователю системы FreeBSD. Используя periodic маршрут позволяет избежать этой проблемы.

Если у вас есть актуальная база данных местоположения, просто:

locate example.filename

Я иногда делаю


  find . | grep example.filename

вероятно, очень неэффективно.