Способи оплати Abuse

Команда find у Linux

04.03.2023, 02:43

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

Формат команди

Основний формат команди find має такий вигляд:

find [path] [expression]

де:

path - це шлях до директорії, в якій потрібно виконати пошук файлів (за замовчуванням, пошук проводиться в поточній директорії та всіх її піддиректоріях);

expression - це вираз, який визначає критерії пошуку файлів.

Далі наведено деякі найпоширеніші критерії пошуку файлів, які можуть бути використані у виразі команди find:

-name: пошук файлів за іменем. Наприклад:

find /home/user -name myfile.txt

-type: пошук файлів певного типу (наприклад, f для звичайних файлів або d для директорій). Наприклад:

find /home/user -type f

-size: пошук файлів за розміром. Наприклад:

find /home/user -size +10M

-mtime: пошук файлів за часом останньої модифікації. Наприклад:

find /home/user -mtime -7

-user і -group: пошук файлів за власником і групою. Наприклад:

find /home/user -user bob -group users

Ви можете використовувати логічні оператори -and, -or і -not, щоб об'єднувати кілька критеріїв пошуку в один вираз.

Наприклад, наступна команда знайде всі файли в директорії /home/user, які були змінені за останні 7 днів і мають розмір понад 10 мегабайт:

find /home/user -type f -mtime -7 -size +10M

Команда find також дозволяє виконати різні дії зі знайденими файлами, використовуючи опцію -exec. Наприклад, ви можете видалити всі файли, які були змінені понад 30 днів тому, за допомогою такої команди:

find /home/user -type f -mtime +30 -exec rm {} ;

Тут опція -exec запускає команду rm для кожного знайденого файлу і використовує {} для заміни імені файлу в команді.

Команда find - це потужний інструмент для пошуку файлів і каталогів у Linux, який можна використовувати для виконання різних завдань, пов'язаних з управлінням.

Додаткові опції

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

-iname: пошук файлів за іменем без урахування регістру символів. Наприклад:

find /home/user -iname myfile.txt

-regex: пошук файлів, чиї імена відповідають заданому регулярному виразу. Наприклад:

find /home/user -regex ".*.txt$"

-maxdepth і -mindepth: обмеження глибини пошуку файлів у піддиректоріях. Наприклад:

find /home/user -maxdepth 2 -type f

-prune: виключення певних директорій із пошуку. Наприклад:

find /home/user -path /home/user/excluded -prune -o -type f -print

-print: виведення списку знайдених файлів у стандартний вивід. Наприклад:

find /home/user -type f -print

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

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