Під час роботи в будь-якій операційній системі іноді виникає потреба у використанні інструментів для швидкого пошуку того чи іншого файлу. Актуально це і для 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» вказує на те, що результати пошуку будуть виведені на екран.
Приклад:
Пошук за назвою файлу
Наприклад, ви хочете відшукати в директорії «/home» файл з назвою «lumpics» , але його розширення невідоме. В такому випадку потрібно виконати наступне:
Find ~ -name "lumpics*" -print
Як можна помітити, тут використовується символ «~» , який означає, що пошук буде проходити в домашній директорії. Після опції «-name» вказано ім'я шуканого файлу ( «lumpics*» ). Зірочка в кінці означає що пошук буде проходити тільки по імені, не враховуючи розширення.
Приклад:
Пошук по першій букві в імені
Якщо ви пам'ятаєте тільки першу букву, З якої починається назва файлу, то існує спеціальний синтаксис команди, який вам допоможе його відшукати. Наприклад, ви хочете знайти файл, який починається з літери від «g» до «l» , і ви не знаєте в якому каталозі він знаходиться. Тоді вам необхідно виконати наступну команду:
Find / -name "[g-l]*" -print
Судячи з символу «/», що йде відразу після основної команди, пошук буде проведено, починаючи з кореневого каталогу, тобто у всій системі. Далі, частина «[g-l]*» означає, що шукане слово буде починатися з певної літери. У нашому випадку від «g» до «l» .
До слова, якщо ви знаєте розширення файлу, то після символу «*» можете його вказати. Наприклад, вам треба знайти той же файл, але ви знаєте, що він має розширення «.odt» . Тоді можна використовувати таку команду:
Find / -name "[g-l]*.odt" -print
Приклад:
Спосіб 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
Пошук файлу за назвою його групи
Виконати пошук файлу, який належить певній групі, точно так само просто-вам потрібно всього-на-всього замінити опцію «-user» на опцію «-group» і вказати назву цієї групи:
Find / -groupe guest -print
Тобто ви вказали, що хочете відшукати в системі файл, що відноситься до групи «guest» . Пошук буде відбуватися по всій системі, про це свідчить символ «/» .
Спосіб 4: Пошук файлу за його типом (опція-type)
Знайти якийсь елемент у певному типі Linux досить просто, вам потрібно лише вказати відповідний варіант ( -type ) і позначити тип. На початку статті були перераховані всі позначення типів, які можна застосовувати для пошуку.
Наприклад, ви хочете відшукати всі блокові файли в домашній директорії. У цьому випадку ваша команда буде виглядати так:
Find ~ -type b -print
Відповідно, Ви вказали що проводите пошук по типу файлу, про що свідчить опція «-type» , а далі визначили його тип, поставивши символ блочного файлу & 8212; «b» .
Приклад:
Точно так само ви можете вивести на екран всі каталоги в потрібній директорії, вписавши в команду символ «d» :
Find /home/user -type d -print
Спосіб 5: пошук файлу за розміром (опція-size)
Якщо з усієї інформації про файл ви знаєте лише його розмір, то навіть цього може бути достатньо, щоб знайти його. Наприклад, ви хочете в певній директорії знайти файл розміром 120 Мб, для цього виконайте наступне:
Find /home/user/Dropbox -size 120M -print
Приклад:
Читайте також: як дізнатися розмір папки в Linux
Як можна помітити, потрібний нам файл був знайдений. Але якщо ви не знаєте, в якій директорії він знаходиться, можна провести пошук по всій системі, вказавши кореневу директорію на початку команди:
Find / -size 120M -print
Приклад:
Якщо ви знаєте розмір файлу приблизно, ТО і на цей випадок є спеціальна команда. Вам потрібно прописати в «терміналі» те ж саме, тільки перед зазначенням розміру файлу поставити знак «-» (якщо потрібно знайти файли менше зазначеного розміру) або «+» (якщо розмір шуканого файлу буде більше зазначеного). Ось приклад такої команди:
Find /home/user/Dropbox +100M -print
Приклад:
Спосіб 6: Пошук файлу за датою зміни (опція-mtime)
Бувають випадки, коли найзручніше проводити пошук файлу за датою його зміни. У Linux для цього застосовується опція «-mtime» . Користуватися їй досить просто, розглянемо все на прикладі.
Припустимо, в папці " зображення» нам потрібно знайти об'єкти, які піддавалися змінам останні 15 діб. Ось що потрібно прописати в «терміналі» :
Find /home/user/зображення-mtime -15-print
Приклад:
Як можна помітити, ця опція показує не тільки файли, що змінювалися за вказаний термін, але і папки. Працює вона і в зворотну сторону — ви можете знайти об'єкти, які були змінені пізніше зазначеного терміну. Для цього потрібно перед цифровим значенням вписати знак «+» :
Find /home/user/зображення-mtime +10-print
GUI
Графічний інтерфейс багато в чому полегшує життя новачкам, які тільки встановили дистрибутив Linux. Даний метод пошуку дуже схожий на той, що здійснюється в ОС Windows, хоча і не може дати всіх тих переваг, що пропонує «Термінал» . Але про все по порядку. Отже, розглянемо, як зробити пошук файлів в Linux, використовуючи графічний інтерфейс системи.
Спосіб 1: Пошук через меню системи
Зараз буде розглянуто спосіб пошуку файлів через меню системи Linux. Проведені дії будуть виконуватися в дистрибутиві Ubuntu 16.04 LTS, проте інструкція загальна для всіх.
Читайте також: як дізнатися версію дистрибутива Linux
Припустимо, вам необхідно знайти в системі файли під ім'ям»Знайди мене" , також цих файлів в системі два: один у форматі «.txt» , а другий &8212; «.odt» . Щоб їх відшукати, необхідно спочатку натиснути на іконку меню (1) , і в спеціальному поле для введення (2) вказати пошуковий запит »Знайди мене" .
Відобразиться результат пошуку, де будуть показані шукані файли.
Але якщо в системі було б багато таких файлів і всі вони відрізнялися розширеннями, то пошук би ускладнився. Для того щоб виключити у видачі результатів непотрібні файли, наприклад, програми, найкраще скористатися фільтром.
Розташований він в правій частині меню. Фільтрувати ви можете за двома критеріями: «категорії» і «Джерела» . Розгорніть ці два списки, натиснувши по стрілочці поруч з назвою, і в меню приберіть виділення з непотрібних пунктів. В даному випадку розумніше буде залишити лише пошук по " файли та папки» , оскільки ми шукаємо саме файли.
Відразу можна помітити недолік цього способу — не можна детально налаштувати фільтр, як в «терміналі» . Так, якщо ви шукайте текстовий документ з якоюсь назвою, у видачі вам можуть показати картинки, папки, архіви і т. п. Але якщо ви знаєте точне найменування потрібного файлу, то зможете швидко відшукати його, не вивчаючи численні способи команди «find» .
Спосіб 2: Пошук через файловий менеджер
Другий спосіб має значну перевагу. Використовуючи інструмент файлового менеджера, можна зробити пошук в зазначеному каталозі.
Виконати цю операцію простіше простого. Вам необхідно в файловому менеджері, в нашому випадку Nautilus & 8217; е, увійти в папку, в якій імовірно знаходиться шуканий файл, і натиснути кнопку»пошук" , розташовану у верхньому правому куті вікна.
У поле, що з'явилося для введення Вам потрібно ввести передбачувану назву файлу. Також не забувайте, що пошук може бути проведений не по цілому імені файлу, а лише по його частині, як показано на прикладі нижче.
Як і в попередньому способі, в цьому точно так же можна використовувати фільтр. Для його відкриття натисніть на кнопку зі знаком «+» , розташовану в правій частині поля введення пошукового запиту. Відкриється підменю, в якому ви можете зі списку вибрати шуканий тип файлу.
Висновок
З усього вищесказаного, можна зробити висновок, що для проведення швидкого пошуку по системі відмінно підійде другий спосіб, зав'язаний на використанні графічного інтерфейсу. Якщо ж необхідно задати безліч параметрів пошуку, то незамінною буде команда find в «терміналі» .