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

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

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

  1. Знайдіть файл по його імені. такий найпростіший пошук виконується за допомогою утиліти find. Наведена нижче команда буде шукати файл в поточному каталозі і у всіх його підкаталогах.[1]
    Find-iname"ім'я файлу"
    
    • Введіть-iname замість -name, щоб проігнорувати регістр у веденому імені файлу. Команда -name враховує регістр.
  2. Почніть пошук в кореневому каталозі. щоб запустити пошук по всій системі, до запиту додайте модифікатор /. У цьому випадку команда find шукатиме файл у всіх каталогах, починаючи з кореневого.
    Find / - iname"ім'я файлу"
    
    • Можна почати пошук в певному каталозі; для цього замініть/ на шлях до каталогу, наприклад, /home/max.
    • Можна використовувати. замість /, щоб шукати файл тільки в поточному каталозі і його підкаталогах.
  3. Використовуйте символ Узагальнення. *, щоб знайти файли, ім'я якого відповідає частині запиту. За допомогою символу Узагальнення * можна знайти файл, повне ім'я якого невідоме, або знайти всі файли з певним розширенням.
    Find /home/max -iname"*.conf"
    
    • Ця команда знайде всі файли з розширенням .conf в папці користувача Max (і її підпапках).
    • Скористайтеся цією командою, щоб знайти всі файл, імена яких відповідають частині запиту. Наприклад, якщо на комп'ютері зберігається безліч файлів, пов'язаних з WikiHow, знайдіть всі файли, ввівши"*wiki*".
  4. Полегшіть управління результатами пошуку.якщо результатів пошуку занадто багато, серед них складно знайти потрібний файл. Використовуйте символ |, щоб результати пошуку фільтрувалися командою less. Це полегшить перегляд і фільтрування результатів пошуку.
    Find /home/max -iname"*.conf" | less
    
  5. Знайдіть конкретні елементи. використовуйте модифікатори, щоб у результатах пошуку відобразити лише певні елементи. Можна шукати звичайні файли (f), каталоги (d), символьні посилання (l), пристрої посимвольного вводу-виводу (з) і блокові пристрої (B).
    Find / - type f-iname"ім'я файлу"
    
  6. Відфільтруйте результати пошуку за розміром файлів. якщо на комп'ютері зберігається безліч файлів зі схожими іменами, але розмір шуканого файлу відомий, відфільтруйте результати пошуку за розміром файлів.
    Find / - size +50M-iname"ім'я файлу"
    
    • Ця команда знайде всі файли, розмір яких перевищує 50 МБ. Використовуйте модифікатор+ або -, щоб вказати на збільшення або зменшення розміру. Якщо модифікатора + або - ні, команда знайде файли, розмір яких точно збігається з вказаним розміром.
    • Результати пошуку можна відфільтрувати по байтам (c), кілобайт (k), мегабайтам (M), гігабайт (G) або блоками по 512 байт (b). Зверніть увагу, що наведені модифікатори враховують регістр.
  7. Використовуйте логічні оператори (булеві оператори), щоб об'єднати пошукові фільтри. можна використовувати оператори -and, -or, -not, щоб об'єднати різні пошукові запити в один запит.[2]
    Find /travelphotos -type f -size +200k -not -iname"*2015*"
    
    • Ця команда знайде файли в папці "Travelphotos", розмір яких більше 200 кБ і в іменах яких немає числа 2015.
  8. Знайдіть файли по власнику або дозволам.якщо потрібно знайти файл, що належить конкретному користувачеві, або файл з певними правами доступу, можна звузити пошук.
    Find / - user max-iname"ім'я файлу"
    find / - group users-iname "ім'я файлу"
    find / - perm 777 - iname "ім'я файлу"
    
    • Наведені вище команди знайдуть файл певного користувача, групи або з конкретними правами доступу. Також в запиті ім'я файлу можна опустити, щоб знайти всі файли, відповідні зазначеним критеріям. Наприклад, командаfind / -perm 777 знайде всі файли з правами доступу 777 (без обмежень).[3]
  9. Об'єднайте команди, щоб виконати певні дії після завершення пошуку файлів. Команду find можна об'єднати з іншими командами, які оброблять знайдені файли. Для цього між командою find і другою командою введіть -exec, а в кінці рядка введіть {} \;
    Find . -type f -perm777 -exec chmod 755 {} \;
    
    • Ця команда знайде в поточному каталозі (і його підкаталогах) всі файли з правами доступу 777, а потім за допомогою командиchmod права доступу зміняться на 755.

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

  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. Оновіть базу утиліти.locate. Ця утиліта не зможе знайти що-небудь без попередньо створеної і оновленої бази (в якій зберігається подобу зліпка з файлової системи). База оновлюється щодня в автоматичному режимі, але це можна зробити і вручну. Оновіть базу вручну, щоб негайно приступити до роботи з locate.[4]
    • Введітьsudo updatedb натисніть Enter.
  3. Використовуйте. locate, щоб виконувати прості пошукові запити. Утиліта locate працює швидко, але вона не така функціональна, як утиліта find. Команда locate обробляє прості пошукові запити аналогічно команді find.
    Locate -i"*.jpg"
    
    • Ця команда знайде (у всій системі) всі файли з розширенням.jpg. Тут символ Узагальнення * працює так само, як у команди find.
    • Як і у командиfind, модифікатор -i ігнорує регістр пошукового запиту.
  4. .
  5. Обмежте кількість результатів пошуку. якщо результатів пошуку занадто багато, скоротіть їх за допомогою модифікатора -n і числа, яке визначає кількість відображуваних результатів пошуку.
    Locate -n20 -i "*.jpg"
    
    • Ця команда призведе до відображення перших 20 результатів, які відповідають пошуковому запиту.
    • Також можна використовувати символ|, щоб результати пошуку фільтрувалися командою less. Це полегшить перегляд результатів пошуку.

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

  1. Використовуйте команду. grep, щоб шукати текст у файлах. Зробіть це, щоб знайти файл, який містить певну фразу або рядок. Основний формат команди grep виглядає наступним чином:
    Grep-r-i"пошуковий запит" / шлях / до / каталогу/
    
    • Модифікатор-r робить пошук рекурсивним, тому в поточному каталозі (і всіх підкаталогах) буде знайдений будь-який файл, що містить рядок з пошукового запиту.
    • Модифікатор-i вказує на те, що запит не враховує регістр. Щоб врахувати регістр, не вводьте модифікатор -i.
  2. Сховайте зайвий текст. при виконанні команди grep (як описано вище) на екрані відобразиться ім'я файлу і текст з виділеною фразою або рядком, зазначеної в пошуковому запиті. Такий текст можна приховати, щоб відобразити тільки ім'я файлу і шлях до нього. Для цього введіть наступну команду:
    Grep-r-i"пошуковий запит" /шлях/до/каталогу/ | cut-d: -f1
    
  3. Приховуйте повідомлення про помилки. Команда grep виводить повідомлення про помилку, якщо намагається отримати доступ до папок без належних дозволів або потрапляє в порожні папки. Такі повідомлення можна відправити в / dev / null, щоб вони не відображалися на екрані.[5]
    Grep-r-i"пошуковий запит" / шлях / до / каталогу / 2&#gt; / dev / null
    

Ще почитати: