шукаємо файли в Linux

Під час роботи в будь-якій операційній системі іноді виникає потреба у використанні інструментів для швидкого пошуку того чи іншого файлу. Актуально це і для 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 можна переходити безпосередньо до наочним прикладам. Зважаючи на велику кількість варіантів використання команди, наведені приклади будуть не для всіх змінних, а лише для найбільш використовуваних.

Читайте також: популярні команди в&171; терміналі & 187; Linux

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

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

Пошук розширення

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

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

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

Приклад:

пример выполнения поиска в определенной директории по расширению файла в linux

Пошук за назвою файлу

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

Find ~ -name "lumpics*" -print

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

Приклад:

пример выполнения поиска файла в домашней директории в linux

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

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

Find / -name "[g-l]*" -print

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

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

Find / -name "[g-l]*.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» , а далі визначили його тип, поставивши символ блочного файлу & 8212; «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» , а другий &8212; «.odt» . Щоб їх відшукати, необхідно спочатку натиснути на іконку меню (1) , і в спеціальному поле для введення (2) вказати пошуковий запит »Знайди мене" .

Відобразиться результат пошуку, де будуть показані шукані файли.

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

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

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

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

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

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

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

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

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

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

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

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

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

Висновок

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

більше статей на цю тему: