приклади використання команди find в Linux

Більшість популярних файлових менеджерів для операційних систем на ядрі Linux мають досить функціональним інструментом пошуку. Однак не завжди присутніх в ньому параметрів вистачає користувачеві для пошуку необхідної інформації. В такому випадку на допомогу приходити стандартна утиліта, що запускається через &171;Термінал&187; . Вона дозволяє шляхом введення команди, аргументу і опції запросто відшукати необхідні дані в певній директорії або у всій системі.

Використовуємо команду find в Linux

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

Перехід в директорію через консоль

Для початку хотілося б трохи відступити від основної команди і торкнутися теми додаткових дій, які в майбутньому допоможуть при Управлінні з консолі. Справа в тому, що утиліти в дистрибутивах Linux не заточені під пошук всіх знаходяться на комп'ютері елементів. Всі процеси слід запускати тільки із зазначенням повного розташування до елементів або переходити в розташування через команду cd . Зробити це можна досить легко:

  1. Відкрийте встановлений файловий менеджер і перейдіть в необхідну папку, де хочете в подальшому використовувати команду find .
  2. Переход к нужной директории через файловый менеджер Linux
  3. На будь-якому об'єкті клацніть ПКМ і знайдіть пункт &171; властивості&187; .
  4. Переход к свойствам объекта в операционной системе Linux
  5. Ви побачите його батьківську папку з повним вказівкою шляху. Запам'ятайте його, щоб здійснити перехід з &171;терміналу&187; .
  6. Узнать родительскую папку объекта через свойства в Linux
  7. Тепер запустіть консоль, наприклад, через меню.
  8. Запуск терминала для последующего ввода команд в Linux
  9. Пропишіть там команду cd /home/user/folder , де user & 8212; ім'я домашньої папки користувача, а folder &8212; назва необхідної директорії.
  10. Переместиться к расположению в терминале Linux

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

Пошук файлів в поточній директорії

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

Использование команды find без аргументов в Linux

Активація find без аргументів і опцій використовується тоді, коли треба переглянути відразу всі елементи. Якщо їх назва повністю не поміщається в рядки, варто змінити команду, щоб вона набула вигляду find . -print .

Пошук файлів у вказаному каталозі

Команда для відображення файлів через заданий шлях практично не відрізняється від тієї, яку ми згадали вище. Вам так само слід прописати find , а після додати ./folder , якщо хочете дізнатися дані про каталог в поточному розташуванні, або ж буде потрібно вказати повний шлях, шляхом введення, наприклад, find ./home/user/downloads/folder , де folder &8212; кінцева директорія. Кожні елементи будуть виведені окремими рядками в порядку їх глибини.

Использование команды find с указанием расположения файла в Linux

Пошук по імені

Іноді з'являється потреба відобразити тільки задовольняють за назвою об'єкти. Тоді користувачеві потрібно задати окрему опцію для команди, щоб вона зрозуміла звернення. Рядок введення знаходить такий вигляд: find . -name "word" , де word &8212; ключове слово для пошуку, яке обов'язково прописується в подвійних лапках і з урахуванням регістра кожного символу.

Поиск файлов по имени через команду find в Linux

Якщо ж ви не знаєте точний регістр кожної літери або ж бажаєте відобразити всі відповідні назви, не взявши до уваги цей параметр, введіть в консолі find . -iname "word" .

Для фільтрації результатів за ключовим словом до аргументу -name додається ще один. Команда набуває вигляду find . -not -name "word" , де word &8212; слово, яке треба виключити.

Включить фильтрацию по ключевому слову команде find в Linux

Ще часом виникає потреба відшукати об'єкти по одному ключу, виключивши при цьому інший. Тоді по черзі присвоюється відразу кілька опцій пошуку і рядок введення виходить наступною: find . -name "word" -not name "*.txt" . Зверніть увагу, що у другому аргументі в лапках вказано &171; *.txt&187; , а це означає, що find працює не тільки з назвами, але і з форматами файлів, які задаються в такому вигляді.

Совмещенный поиск по имени командой find в Linux

Існує і оператор або . Він дозволяє знайти один або відразу кілька відповідних аргументів. Кожен вказується окремо, з додаванням при цьому відповідних аргументів. У підсумку вийде приблизно наступне: find -name "word" -o -name "word1" .

Применение опции ИЛИ в команде find Linux

Вказівка глибини пошуку

Команда find допоможе користувачеві і тоді, коли йому потрібно знайти вміст директорій тільки до зазначеної глибини, наприклад, не потрібно здійснення аналізу всередині третьої підпапки. Для установки подібних обмежень впишіть find . -maxdepth N -name "word" , де N & 8212; максимальна глибина, а -name &171;word&187; &8212; будь-які наступні аргументи.

Указать глубину сканирования командой find в Linux

Пошук в декількох директоріях

У багатьох каталогах присутній відразу по кілька папок з різним вмістом. Якщо їх там знаходиться велика кількість, а пошук потрібно здійснити тільки в певних, тоді буде потрібно вказати це при введенні команди find ./folder ./folder1 -type f -name "word" , де ./folder ./folder1 & 8212; перелік відповідних директорій, а -name &171;word&187; &8212; інші аргументи.

Поиск в нескольких папках при использовании команды find в Linux

Відображення прихованих елементів

Без вказівки відповідного аргументу приховані об'єкти, що знаходяться в сканованих каталогах, відображатися в консолі не будуть. Тому користувач вручну прописує додаткову опцію, щоб в результаті команда була такою: find ~ -type f -name ".*" . Ви отримаєте повний список всіх файлів, але якщо ж до деяких з них немає доступу, перед словом find у рядку пропишіть sudo , щоб активувати права суперкористувача.

Отобразить скрытые файлы командой find в Linux

Сканування домашніх папок груп і користувачів

Кожен користувач може створювати необмежену кількість каталогів та об'єктів у різних місцях. Швидше за все відшукати ту інформацію, яка належить одному з користувачів, за допомогою команди find і одного з її аргументів. В &171;терміналі&187; пропишіть find . -user username , де username & 8212; ім'я користувача. Після введення сканування запуститься автоматично.

Показать файлы, принадлежащие определенному пользователю командой find в Linux

Приблизно така ж схема працює і з групами користувачів. Запуск аналізу файлів, пов'язаних з однією з груп, відбувається через find /var/www -group groupname . Не забувайте, що об'єктів може бути велика кількість і на виведення їх всіх іноді йде багато часу.

Показать файлы, принадлежащие определенной групе командой find в Linux

Фільтрація за датою змін

Операційна система автоматично зберігає інформацію про дату зміни кожного існуючого файлу. Команда find дозволяє знайти їх все за вказаним параметром. Потрібно тільки прописати sudo find / -mtime N , де N &8212; кількість днів тому, коли об'єкт був змінений останній раз. Приставка sudo тут потрібна для того, щоб отримати дані і про файли, призначених тільки для суперкористувача.

Фильтрация по дате изменения при команде find в Linux

Якщо ж вас цікавить перегляд елементів, які останній раз відкривалися певну кількість днів тому, тоді рядок трохи змінює свій вигляд на sudo find / -atime N .

Фильтрация по дате открытия при команде find в Linux

Фільтрація за розміром файлів

Кожен об'єкт має свій розмір, відповідно, команда для пошуку файлів повинна володіти функцією, що дозволяє фільтрувати їх за цим параметром. find вміє це робити, користувачеві необхідно тільки задати сам розмір через аргумент. Досить ввести find / -size N , де N &8212; обсяг в байтах, мегабайтах (M) або гігабайтах (G).

Фильтрация поиска по размеру с помощью find в Linux

Вказати можна і діапазон шуканих елементів. Тоді в команду вписуються визначники і вийде, наприклад, такий рядок: find / -size +500M -size -1000M . Такий аналіз відображатиме файли понад 500 мегабайтів, але менше 1000.

Установить диапазон объема файлов для поиска через find в Linux

Пошук порожніх файлів і каталогів

Деякі з файлів або папок бувають порожні. Вони просто займають зайвий простір на диску і іноді заважають нормально взаємодіяти з комп'ютером. Їх слід знайти, щоб визначитися з подальшими діями, а в цьому допоможе find /folder -type f -empty , де /folder &8212; місце, де здійснюється сканування.

Показать пустые объекты с помощью find в Linux

Окремо хотілося б коротко відзначити інші корисні аргументи, які час від часу стають корисними для користувача:

аргументи опис
-mount обмеження лише на поточну файлову систему
-type f відображати лише файли
-type d показувати тільки директорії
-nogroup Пошук файлів, які не належать до жодної групи
-nouser Пошук файлів, які не належать Користувачеві
-version дізнатися версію використовуваної утиліти

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

Детальніше: Часто використовувані команди в «терміналі» Linux

Після пошуку необхідної інформації ви можете здійснювати з ними будь-які інші дії, наприклад, редагування, видалення або вивчення вмісту. У цьому допоможуть інші вбудовані утиліти &171;терміналу&187; . Приклади їх використання знайдете далі.

Читайте також: приклади команд grep / cat / ls в Linux

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