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