Я намагаюся знайти всі копії example.filename
на моєму сервері FreeBSD. Який найкращий / найпростіший / найефективніший спосіб зробити це?
Я намагаюся знайти всі копії example.filename
на моєму сервері FreeBSD. Який найкращий / найпростіший / найефективніший спосіб зробити це?
Відповіді:
find / -name example.filename
locate filename
Набагато швидше, ніж find
, якби ви працюєте в локацію служби, і він тільки знаходить файли , які існували в той час updatedb
останнього запуску (ніч зазвичай працює на рідкому Befor під контролем хрон).
Ви можете запустити updatedb
вручну, але це навіть повільніше , ніж Клетус передбачає і вимагає кореня. Я інколи оновлюю базу даних вручну після встановлення купки нових речей.find
find /
або на будь-якому великому дереві більше одного разу на тиждень, то запускати locate
службу, мабуть, варто, адже locate(1)
це набагато швидше.
sudo periodic weekly
оновлює locate
базу даних. Запустіть це після будь-якої інсталяції чи завантаження, яка може містити потрібні файли.
Якщо у вас встановлено locate (він же slocate), то
locate example.filename
Кожен вечір locate виконує завдання cron щовечора, що переробляє всі файли на вашій машині. З цієї причини це не завжди актуально.
Іноді потрібно знайти файли на певному рівні каталогу. У цьому випадку може бути зручно використовувати штрихові символи оболонки:
ls /data/*/example.filename
Очевидно, це працює лише в тому випадку, якщо у вас є жорстка структура каталогів.
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
бази даних, ви можете отримати повідомлення про небезпеку, розкриваючи імена всіх файлів вашої системи будь-якому користувачеві системи FreeBSD. Використання periodic
маршруту дозволяє уникнути цієї проблеми.
Якщо у вас є актуальна база даних, просто:
locate example.filename
Я іноді так роблю
find . | grep example.filename
напевно, дуже неефективно.