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