Я намагаюся знайти всі копії 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
напевно, дуже неефективно.