Під час роботи в будь-якій операційній системі іноді виникає потреба у використанні інструментів для швидкого пошуку того чи іншого файлу. Актуально це і для Linux, тому нижче будуть розглянуті всі можливі способи пошуку файлів в цій ОС. Представлені будуть як інструменти файлового менеджера, так і команди, які використовуються в «Терміналі».

Читайте також:
Перейменовуємо файли в Linux
Створюємо і видаляємо файли в Linux

термінал

Якщо вам необхідно поставити безліч параметрів пошуку для знаходження потрібного файлу, то команда find незамінна. Перед розглядом всіх її варіацій варто пройтися по синтаксису і опцій. Синтаксис вона має наступний:

find путь опция

де шлях - це директорія, в якій буде відбуватися пошук. Є три основні варіанти вказівки шляху:

  • / - пошук по кореневої і прилеглим до неї тек;
  • ~ - пошук по домашньої директорії;
  • ./ - пошук в директорії, в якій користувач знаходиться в даний момент.

Також ви можете вказати шлях безпосередньо до самого каталогу, в якому імовірно розташований файл.

Опцій у find дуже багато, і саме завдяки їм можна здійснити гнучке налаштування пошуку, задавши необхідні змінні:

  • -name - проводити пошук, беручи за основу ім'я шуканого елемента;
  • -user - шукати файли, які відносяться до певного користувачеві;
  • -group - проводити пошук по певній групі користувачів;
  • -perm - показувати файли з зазначеним режимом доступу;
  • -size n - шукати, беручи за основу розмір об'єкта;
  • -mtime + n -n - проводити пошук файлів, які змінювалися більше (+ n) або менше (-n) днів назад;
  • -type - шукати файли певного типу.

Типів шуканих елементів теж багато. Ось їх список:

  • b - блоковий;
  • f - звичайний;
  • p - іменований канал;
  • d - каталог;
  • l - посилання;
  • s - сокет;
  • c - символьний.

Після детального розбору синтаксису і опцій команди find можна переходити безпосередньо до наочних прикладів. Через велику кількість варіантів використання команди, наведені приклади будуть не для всіх змінних, а лише для найбільш використовуваних.

Читайте також: Популярні команди в «Терміналі» Linux

Спосіб 1: Пошук по імені (опція -name)

Найчастіше користувачі для здійснення пошуку по системі використовують опцію -name, так що саме з неї і почнемо. Розберемо декілька прикладів.

Пошук по розширенню

Припустимо, вам потрібно знайти в системі файл з розширенням «.xlsx», який знаходиться в директорії «Dropbox». Для цього необхідно використовувати наступну команду:

find /home/user/Dropbox -name "*.xlsx" -print

З її синтаксису можна сказати, що пошук проводиться в директорії «Dropbox» ( «/ home / user / Dropbox»), а шуканий об'єкт повинен бути з розширенням «.xlsx». Зірочка свідчить про те, що пошук буде проведено по всіх файлів цього розширення, не беручи до уваги їх назва. «-print» вказує на те, що результати пошуку будуть виведені на екран.

приклад:

приклад виконання пошуку в певній директорії по розширенню файлу в linux

Пошук по імені файлу

Наприклад, ви хочете відшукати в директорії «/ home» файл з назвою « {$lang_domain} », Але розширення його невідомо. У такому випадку потрібно виконати наступне:

find ~ -name " *" -print {$lang_domain} find ~ -name " *" -print

Як можна помітити, тут використовується символ «~», який означає, що пошук буде проходити в домашній директорії. Після опції «-name» зазначено ім'я шуканого файлу ( « {$lang_domain} * »). Зірочка в кінці означає що пошук буде проходити тільки по імені, не враховуючи розширення.

приклад:

приклад виконання пошуку файлу в домашній директорії в linux

Пошук по першій букві в імені

Якщо ви пам'ятаєте тільки першу букву, з якої починається назва файлу, то існує спеціальний синтаксис команди, який вам допоможе його відшукати. Наприклад, ви хочете знайти файл, який починається з букви від «g» до «l», і ви не знаєте в якому каталозі він знаходиться. Тоді вам необхідно виконати наступну команду:

find / -name "[gl]*" -print

Судячи з символу «/», що йде відразу після основної команди, пошук буде проведено, починаючи з кореневого каталогу, тобто у всій системі. Далі, частина «[gl] *» означає, що шукане слово буде починатися з певної літери. У нашому випадку від «g» до «l».

До слова, якщо ви знаєте розширення файлу, то після символу «*» можете його вказати. Наприклад, вам треба знайти той же файл, але ви знаєте, що він має розширення «.odt». Тоді можна використовувати таку команду:

find / -name "[gl]*.odt" -print

приклад:

приклад пошуку файлу по першій букві і його розширення в linux

Спосіб 2: Пошук за режимом доступу (опція -perm)

Іноді необхідно знайти об'єкт, ім'я якого ви не знаєте, але знаєте яким режимом доступу він володіє. Тоді вам потрібно застосовувати опцію «-perm».

Користуватися їй досить просто, потрібно всього лише вказати місце пошуку і режим доступу. Ось приклад такої команди:

find ~ -perm 775 -print

Тобто пошук проводиться в домашньому розділі, а шукані об'єкти будуть мати доступ 775. Також ви можете перед цим числом прописати символ «-», тоді знайдені об'єкти будуть мати біти дозволів від нуля до вказаного значення.

Спосіб 3: Пошук по користувачам або групі (опції -user і -group)

У будь-якій операційній системі є користувачі та групи. Якщо ви хочете знайти об'єкт, що належить одній з цих категорій, то для цього можете використовувати опцію «-user» або «-group», відповідно.

Пошук файлу на ім'я його користувача

Наприклад, вам потрібно знайти в директорії «Dropbox» файл «Lampics», але ви не знаєте як він називається, а знаєте щойно він належить користувачеві «user». Тоді вам потрібно виконати наступну команду:

find /home/user/Dropbox -user user -print

У даній команді ви вказали потрібний каталог (/ home / user / Dropbox), вказали що потрібно шукати файл, що належить користувачеві (-user), і вказали, якого саме користувачеві цей файл належить (user).

приклад:

пошук файлу по користувачеві в linux

Читайте також:
Як подивитися список користувачів в Linux
Як додати користувача в групу в Linux

Пошук файлу за назвою його групи

Виконати пошук файлу, який належить певній групі, точно так же просто - вам потрібно всього-на-всього замінити опцію «-user» на опцію «-group» і вказати назву цієї групи:

find / -groupe guest -print

Тобто ви вказали, що хочете відшукати в системі файл, що відноситься до групи «guest». Пошук буде відбуватися по всій системі, про це свідчить символ «/».

Спосіб 4: Пошук файлу по його типу (опція -type)

Знайти якийсь елемент в Linux певного типу досить просто, вам потрібно всього лише вказати відповідну опцію (-type) і позначити тип. На початку статті були перераховані всі позначення типів, які можна застосовувати для пошуку.

Наприклад, ви хочете відшукати всі блокові файли в домашній директорії. У цьому випадку ваша команда буде виглядати так:

find ~ -type b -print

Відповідно, ви вказали що проводите пошук по типу файлу, про що свідчить опція «-type», а далі визначили його тип, поставивши символ блокового файлу - «b».

приклад:

пошук блокових файлів із застосуванням команди -type в терміналі linux

Точно так же ви можете вивести на екран всі каталоги в потрібній директорії, вписавши в команду символ «d»:

find /home/user -type d -print

Спосіб 5: Пошук файлу за розміром (опція -size)

Якщо з усієї інформації про фото ви знаєте тільки його розмір, то навіть цього може виявитися достатньо, щоб знайти його. Наприклад, ви хочете в певній директорії знайти файл розміром 120 Мб, для цього виконайте наступне:

find /home/user/Dropbox -size 120M -print

приклад:

висновок команди з пошуку файлу певного розміру

Читайте також: Як дізнатися розмір папки в Linux

Як можна помітити, потрібний нам файл був знайдений. Але якщо ви не знаєте, в якій директорії він перебуває, можна провести пошук по всій системі, вказавши кореневу директорію на початку команди:

find / -size 120M -print

приклад:

пошук файлу певного розміру по всій системі в linux

Якщо ви знаєте розмір файлу приблизно, то і на цей випадок є спеціальна команда. Вам потрібно прописати в «Терміналі» те ж саме, тільки перед зазначенням розміру файлу поставити знак «-» (якщо потрібно знайти файли не перевищує зазначений) або «+» (якщо розмір шуканого файлу буде більше зазначеного). Ось приклад такої команди:

find /home/user/Dropbox +100M -print

приклад:

пошук файлу за розміром більше зазначеного в linux

Спосіб 6: Пошук файлу за датою зміни (опція -mtime)

Бувають випадки, коли найзручніше проводити пошук файлу за датою його зміни. У Linux для цього застосовується опція «-mtime». Користуватися їй досить просто, розглянемо всі на прикладі.

Припустимо, в папці «Зображення» нам потрібно знайти об'єкти, які піддавалися змінам останні 15 діб. Ось що потрібно прописати в «Терміналі»:

find /home/user/Изображения -mtime -15 -print

приклад:

приклад пошуку файлів за датою останньої зміни за допомогою команди find в linux

Як можна помітити, ця опція показує не тільки файли, що змінювалися за вказаний термін, але і папки. Працює вона і в зворотний бік - ви можете знайти об'єкти, які були змінені пізніше зазначеного терміну. Для цього потрібно перед цифровим значенням вписати знак «+»:

find /home/user/Изображения -mtime +10 -print

GUI

Графічний інтерфейс багато в чому полегшує життя новачкам, які тільки встановили дистрибутив Linux. Даний метод пошуку дуже схожий на той, що здійснюється в ОС Windows, хоча і не може дати всіх тих переваг, що пропонує «Термінал». Але про все по порядку. Отже, розглянемо, як зробити пошук файлів в Linux, використовуючи графічний інтерфейс системи.

Спосіб 1: Пошук через меню системи

Зараз буде розглянуто спосіб пошуку файлів через меню системи Linux. Проведені дії будуть виконуватися в дистрибутиві Ubuntu 16.04 LTS, проте інструкція загальна для всіх.

Читайте також: Як дізнатися версію дистрибутива Linux

Припустимо, вам необхідно знайти в системі файли під ім'ям «Знайди мене», також цих файлів в системі два: один в форматі «.txt», а другий - «.odt». Щоб їх відшукати, необхідно спочатку натиснути на іконку меню (1), і в спеціальному полі для введення (2) вказати пошуковий запит «Знайди мене».

З'явиться результат пошуку, де будуть показані файли, що розшукуються.

результати пошуку файлів проводяться через меню системи в linux

Але якщо в системі було б багато таких файлів і всі вони відрізнялися розширеннями, то пошук б ускладнився. Для того щоб виключити у видачі результатів непотрібні файли, наприклад, програми, найкраще скористатися фільтром.

Розташований він в правій частині меню. Фільтрувати ви можете за двома критеріями: «Категорії» та «Джерела». Розгорніть ці два списки, натиснувши по стрілочки поряд з назвою, і в меню приберіть виділення з непотрібних пунктів. В даному випадку розумніше буде залишити лише пошук по «Файли і папки», так як ми шукаємо саме файли.

настройка фільтра в меню системи linux при пошуку файлів

Відразу можна помітити недолік цього способу - не можна детально налаштувати фільтр, як в «Терміналі». Так, якщо ви шукайте текстовий документ з якимось назвою, у видачі вам можуть показати картинки, папки, архіви і т. П. Але якщо ви знаєте точну назву потрібного файлу, то зможете швидко відшукати його, не вивчаючи численні способи команди «find ».

Спосіб 2: Пошук через файловий менеджер

Другий спосіб має суттєву перевагу. Використовуючи інструмент файлового менеджера, можна зробити пошук в зазначеному каталозі.

Виконати цю операцію простіше простого. Вам необхідно в файловому менеджері, в нашому випадку Nautilus'е, увійти в папку, в якій імовірно знаходиться шуканий файл, і натиснути кнопку «Пошук», розташовану у верхньому правому куті вікна.

кнопка пошук в файловому менеджері наутилус в linux

В з'явилося поле для введення вам потрібно ввести передбачуване назва файлу. Також не забувайте, що пошук може бути проведений не з цілого імені файлу, а лише по його частині, як показано на прикладі нижче.

пошук файлу по частині його імені в файловому менеджері наутилус в linux

Як і в попередньому способі, в цьому точно так же можна використовувати фільтр. Для його відкриття натисніть на кнопку зі знаком «+», розташовану в правій частині поля введення пошукового запиту. Відкриється підменю, в якому ви можете зі списку вибрати шуканий тип файлу.

фільтр в пошуку в файловому менеджері наутилус в linux

висновок

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