linux:commands:find

Find

find папка параметри критерій шаблон дія

  • -P – ніколи не відкривати символічні посилання.
  • -L – отримує інформацію про файли за символічними посиланнями. Важливо для подальшої обробки, щоб оброблялося не посилання, а сам файл.
  • -d (-maxdepth) – максимальна глибина пошуку за підкаталогами, для пошуку тільки в поточному каталозі встановіть 1.
  • -depth – шукати спочатку в поточному каталозі, а потім у підкаталогах.

-mount – шукати файли тільки в цій файловій системі.

  • -version – показати версію утиліти find.
  • -print – виводити повні імена файлів.
  • -type f – шукати тільки файли.
  • -type d – пошук папки в Linux.

-name – пошук файлів за іменем.

-perm – пошук файлів у Linux за режимом доступу.

-user – пошук файлів за власником.

-group – пошук за групою.

-mtime – пошук за часом модифікації файлу.

-atime – пошук файлів за датою останнього читання.

-nogroup – пошук файлів, що не належать до жодної групи.

-nouser – пошук файлів без власників.

-newer – знайти файли новіші за вказаний.

-size – пошук файлів у Linux за їхнім розміром.

find .

Пошук файлів у певній папці

Показати всі файли в зазначеній директорії:

find ./Изображения

Шукати файли за іменем у поточній папці:

find . -name "*.png

Не враховувати регістр під час пошуку за ім’ям:

find . -iname "TeStFile*"

Обмеження глибини пошуку

Пошук файлів на ім’я в Linux тільки в цій папці:

find . -maxdepth 1 -name "*.php"

Інвертування шаблону

Знайти файли, які не відповідають шаблону:

find . -not -name "test*"

Кілька критеріїв

Пошук командою find в Linux за кількома критеріями, з оператором виключення:

find . -name "test" -not -name "*.php"

Знайде всі файли, що починаються на test, але без розширення php. А тепер розглянемо оператор АБО:

find -name ".html" -o -name ".php"

Ця команда знайде як php, так і html файли.

За замовчуванням find шукає як каталоги, так і файли. Якщо вам необхідно знайти тільки каталоги, використовуйте критерій type з параметром d. Наприклад:

find . -type d -name "Загрузки"

Для пошуку тільки файлів необхідно використовувати параметр f:

find . -type f -name "Загрузки"

Кілька каталогів

find ./test ./test2 -type f -name "*.c"

Пошук прихованих файлів

Знайти приховані файли тільки в поточній папці. Імена прихованих файлів у Linux починаються з крапки:

find . -maxdepth 1 -type f -name ".*"

Пошук за дозволами

Найти файлы с опреЗнайти файли з певною маскою прав, наприклад, 0664:деленной маской прав, например, 0664:

find . -type f -perm 0664

Права також можна задавати буквами для u (user) g (group) і o (other). Наприклад, для того щоб знайти всі файли зі встановленим прапором Suid у каталозі /usr, виконайте:

sudo find /usr -type f -perm /u=s

Пошук файлів доступних власнику тільки для читання тільки в каталозі /etc:

find /etc -maxdepth 1 -perm /u=r

Знайти тільки виконувані файли:

find /bin -maxdepth 2 -perm /a=x

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

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

find . -user sergiy

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

find /var/www -group www-data

Пошук за датою модифікації

Пошук файлів за датою в Linux здійснюється за допомогою параметра mtime. Знайти всі файли модифіковані 50 днів тому:

find / -mtime 50

Пошук файлів у Linux відкритих N днів тому:

find / -atime 50

Знайти всі файли, модифіковані між 50 і 100 днів тому:

find / -mtime +50 -mtime -100

Знайти файли змінені протягом години:

find . -cmin 60

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

Знайти всі файли розміром 50 мегабайт:

find / -size 50M

Від п’ятдесяти до ста мегабайт:

find / -size +50M -size -100M

Знайти найменші файли:

find . -type f -exec ls -s {} ; | sort -n -r | head -5

Знайти найбільші:

find . -type f -exec ls -s {} ; | sort -n | head -5

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

find /tmp -type f -empty

find ~/ -type d -empty

Для виконання довільних команд для знайдених файлів використовується опція -exec. Наприклад, для того щоб знайти всі порожні папки та файли, а потім виконати ls для отримання детальної інформації про кожен файл використовуйте:

find . -empty -exec ls -ld {} ;

Видалити всі текстові файли в tmp

find /tmp -type f -name "*.txt" -exec rm -f {} ;

Видалити всі файли понад 100 мегабайт:

find /home/bob/dir -type f -name *.log -size +100M -exec rm -f {} ;
  • linux/commands/find.txt
  • Востаннє змінено: 22/05/2024 07:36
  • (зовнішнє редагування)