Пошук файлів в linux

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

Синтаксис команди find:

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

- домашній каталог

Після вказівки шляху так вказуються опції пошуку. На вигляд все заплутано, але насправді складнощів тут немає.

Основні опції:
-name - пошук по імені, задається шаблон пошуку;
-user - пошук файлів, пов'язаних з конкретного користувача;
-group - пошук файлів, пов'язаних з конкретною групі;
-perm - пошук файлів за режимом доступу;
-type - пошук файлів за типом, список типів:

-size n - пошук файлів з розміром n одиниць;
-mtime -n + n - пошук файлів по даті зміни, менш (-) або більше (+) днів назад.

Спробуємо провести пошук файлів, імітуючи різні ситуації.
Знайдемо файли на знімному пристрої, підключеному до USB, і попередньо змонтованому в системі.

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

В результаті виконання даної команди буде проведений пошук в каталозі / mnt / usb - це каталог, в який змонтовано пристрій. Пошук буде проведений по всіх файлів (*), мають розширення .mp3.
Маску пошуку можна змінювати досить гнучко, наприклад, можна задати ключове слово, з якого починається ім'я файлу, і зробити по ньому пошук.

Пошук файлів по початковому ключовим словом:

В результаті буде показаний список знайдених файлів, що починаються з ключового слова config.
Одна із сильних сторін команди це можливість пошуку згідно регулярному виразу. Для демонстрації зробимо пошук файлів, що починаються з латинських букв від «a» до «j».

Пошук файлів за шаблоном регулярного виразу:

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

Кожен більш-менш знайомий з системами Linux знає, що режими доступу до файлів справа досить важлива. Іноді буває потрібно знайти файли, які мають конкретні задані права, для цих цілей можна скористатися пошуком з опцією -perm.

Пошук файлів з режимом доступу 755:

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

Пошук файлів з правами для групи:

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

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

Пошук файлів певного користувача:

В результаті пошуку буде знайдено файли належать користувачеві admin.

Пошук файлів, що належать певній групі користувачів:

Будуть знайдені файли, які належать групі користувачів bots. Крім цього можна проводити пошук файлів, власниками яких є неіснуючі користувачі або групи:

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

Пошук символічних посилань:

Пошук буде проведений в директорії / etc, в якій будуть відбиратися всі символічні посилання.

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

Пошук файлів за розміром:

В якості наступного прикладу ми будемо використовувати можливість пошуку файлів за часом його модифікації. Для цих цілей ми скористаємося опцією -mtime.

Пошук файлів, змінених за останні 2 дні:

Пошук буде здійснюватися в директорії / var / www / html. і будуть шукатися файли які змінювалися протягом останніх 2-х днів. Мабуть, одна з важливих і зручних опцій пошуку. Так само можна робити пошук по даті модифікації зі зворотним умовою. Давайте спробує знайти файли в директорії, які не змінювалися протягом 5-ти днів.

Пошук файлів, які не змінювалися протягом 5-ти днів:

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

Схожі статті