Як знайти файл в Linux

Автор: Ellen Moore
Дата Створення: 17 Січень 2021
Дата Оновлення: 29 Червень 2024
Anonim
Linux команда find - команда поиска файлов.
Відеоролик: Linux команда find - команда поиска файлов.

Зміст

Знайти файл в системі Linux досить складно, а то й знати, як це зробити. Найкраще скористатися різними командами, які вводяться в Терміналі. Освоївши такі команди, ви отримаєте повний контроль над файлами; також ці команди більш функціональні, ніж аналогічні пошуковики в інших операційних системах.

кроки

Метод 1 з 3: Утиліта find

  1. 1 Знайдіть файл за його імені. Такий найпростіший пошук виконується за допомогою утиліти find. Наведена нижче команда буде шукати файл в поточному каталозі і у всіх його підкаталогах.

    find -iname "ім'я файлу"

    • Введіть -iname замість -name, Щоб проігнорувати регістр у веденні імені файлу. команда -name враховує регістр.
  2. 2 Почніть пошук в кореневому каталозі. Щоб запустити пошук по всій системі, до запиту додайте модифікатор /. В цьому випадку команда find буде шукати файл у всіх каталогах, починаючи з кореневого.

    find / -iname "ім'я файлу"

    • Можна почати пошук в певному каталозі; для цього замініть / на шлях до каталогу, наприклад, / Home / max.
    • Можна використовувати . замість /, Щоб шукати файл тільки в поточному каталозі і його підкаталогах.
  3. 3 Використовуйте символ узагальнення.*, Щоб знайти файли, ім'я якого відповідає частині запиту. За допомогою символу узагальнення * можна знайти файл, повне ім'я якого невідоме, або знайти всі файли з певним розширенням.

    find / home / max -iname " *. conf"

    • Ця команда знайде всі файли з розширенням .conf в папці користувача Max (і її підпапках).
    • Скористайтеся цією командою, щоб знайти все файл, імена яких відповідають частині запиту. Наприклад, якщо на комп'ютері зберігається безліч файлів, пов'язаних з WikiHow, знайдіть всі файли, ввівши " * Wiki *".
  4. 4 Полегшите управління результатами пошуку. Якщо результатів пошуку дуже багато, серед них складно знайти потрібний файл. використовуйте символ |, Щоб результати пошуку фільтрувалися командою less. Це полегшить перегляд і фільтрування результатів пошуку.

    find / home / max -iname " *. conf" | less

  5. 5 Знайдіть конкретні елементи. Використовуйте модифікатори, щоб в результатах пошуку відобразити тільки певні елементи. Можна шукати звичайні файли (f), Каталоги (d), Символьні посилання (l), Пристрої посимвольного введення-виведення (з) І блокові пристрої (b).

    find / -type f -iname "ім'я файлу"

  6. 6 Фільтрувати результати пошуку за розміром файлів. Якщо на комп'ютері зберігається безліч файлів зі схожими іменами, але розмір шуканого файлу відомий, відфільтруйте результати пошуку за розміром файлів.

    find / -size + 50M -iname "ім'я файлу"

    • Ця команда знайде всі файли, розмір яких перевищує 50 МБ. використовуйте модифікатор + або -, Щоб вказати на збільшення або зменшення розміру. якщо модифікатора + або - немає, команда знайде файли, розмір яких точно співпадає з розміром.
    • Результати пошуку можна відфільтрувати по байтам (c), Кілобайтам (k), Мегабайтам (M), Гігабайтам (G) Або блокам по 512 байт (b). Зверніть увагу, що наведені модифікатори враховують регістр.
  7. 7 Використовуйте логічні оператори (булеві оператори), щоб об'єднати пошукові фільтри. Можна використовувати оператори -and, -or, -not, Щоб об'єднати різні пошукові запити в один запит.

    find / travelphotos -type f -size + 200k -not -iname " * 2015 *"

    • Ця команда знайде файли в папці «Travelphotos», розмір яких більше 200 кБ і в іменах яких немає числа 2015.
  8. 8 Знайдіть файли по власнику або дозволами. Якщо потрібно знайти файл, що належить конкретному користувачеві, або файл з певними правами доступу, можна звузити пошук.

    find / -user max -iname "ім'я файлу" find / -group users -iname "ім'я файлу" find / -perm 777 -iname "ім'я файлу"

    • Наведені вище команди знайдуть файл певного користувача, групи або з конкретними правами доступу. Також в запиті ім'я файлу можна опустити, щоб знайти всі файли, що відповідають зазначеним критеріям. Наприклад, команда find / -perm 777 знайде всі файли з правами доступу 777 (без обмежень).
  9. 9 Об'єднайте команди, щоб виконати певні дії по завершенні пошуку файлів. команду find можна об'єднати з іншими командами, які опрацюють знайдені файли. Для цього між командою find і другою командою введіть -exec, А в кінці рядка введіть {} ;

    find. -type f -perm 777 -exec chmod 755 {} ;

    • Ця команда знайде в поточному каталозі (і його підкаталогах) всі файли з правами доступу 777, а потім за допомогою команди chmod права доступу зміняться на 755.

Метод 2 з 3: Утиліта locate

  1. 1 Встановіть утиліту.locate. Ця утиліта працює швидше утиліти find, Тому що не виконує сканування файлову систему по-справжньому. Однак, не всі дистрибутиви Linux поставляються з утилітою locate, Тому введіть наступні команди, щоб встановити її:
    • Введіть sudo apt-get update і натисніть ↵ Enter.
    • В Debian і Ubuntu зробіть наступне: введіть sudo apt-get install mlocate і натисніть ↵ Enter. якщо locate вже встановлена, відобразиться повідомлення mlocate is already the newest version (Встановлено остання версія).
    • У Arch Linux використовуйте менеджер пакетів pacman: pacman -Syu mlocate
    • У Gentoo використовуйте emerge: emerge mlocate
  2. 2 Оновлення базу утиліти.locate. Ця утиліта не зможе знайти що-небудь без попередньо створеної і оновленої бази (в якій зберігається подібність зліпка з файлової системи). База оновлюється щодня в автоматичному режимі, але це можна зробити і вручну. Оновлення базу вручну, щоб негайно приступити до роботи з locate.
    • Введіть sudo updatedb і натисніть ↵ Enter.
  3. 3 Використовуйте.locate, Щоб виконувати прості пошукові запити. утиліта locate працює швидко, але вона не так функціональна, як утиліта find. команда locate обробляє прості пошукові запити аналогічно команді find.

    locate -i " *. jpg"

    • Ця команда знайде (у всій системі) всі файли з розширенням .webp. Тут символ узагальнення * працює так само, як у команди find.
    • Як і у команди find, модифікатор -i ігнорує регістр пошукового запиту.
  4. .
  5. 4 Обмежте кількість результатів пошуку. Якщо результатів пошуку дуже багато, скоротіть їх за допомогою модифікатора -n і числа, яке визначає кількість відображуваних результатів пошуку.

    locate -n 20 -i " *. jpg"

    • Ця команда призведе до відображення перших 20 результатів, які відповідають пошуковому запиту.
    • Також можна використовувати символ |, Щоб результати пошуку фільтрувалися командою less. Це полегшить перегляд результатів пошуку.

Метод 3 з 3: Пошук тексту в файлах

  1. 1 Використовуйте команду.grep, Щоб шукати текст у файлах. Зробіть це, щоб знайти файл, який містить певну фразу або рядок. Основний формат команди grep виглядає наступним чином:

    grep -r -i "пошуковий запит" / шлях / до / каталогу /

    • модифікатор -r робить пошук рекурсивним, тому в поточному каталозі (і всіх підкаталогах) буде знайдений будь-який файл, що містить рядок з пошукового запиту.
    • модифікатор -i вказує на те, що запит не враховує регістр. Щоб врахувати регістр, не вводьте модифікатор -i.
  2. 2 Сховайте зайвий текст. При виконанні команди grep (Як описано вище) на екрані відобразиться ім'я файлу і текст з виділеної фразою або рядком, зазначеної в пошуковому запиті. Такий текст можна приховати, щоб відобразити тільки ім'я файлу і шлях до нього. Для цього введіть наступну команду:

    grep -r -i "пошуковий запит" / шлях / до / каталогу / | cut -d: -f1

  3. 3 Сховайте повідомлення про помилки. команда grep виводить повідомлення про помилку, якщо намагається отримати доступ до папок без належних дозволів або потрапляє в порожні папки. Такі повідомлення можна відправити в / dev / null, щоб вони не відображалися на екрані.

    grep -r -i "пошуковий запит" / шлях / до / каталогу / 2> / dev / null