Find

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

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

   *-Name - шукати по імені файлу, при використанні символів зразків параметр полягає в лапки.
   *-Type - тип шуканого: f = файл, d = каталог, l = посилання (link).
   *-User - власник: ім'я користувача або UID.
   *-Group - власник: група користувача або GID.
   *-Perm - зазначаються права доступу.
   *-Size - розмір: зазначається в 512-байтних блоках або байтах (ознака байтів - символ «c» за числом).
   *-Atime - час останнього звернення до файлу.
   *-Ctime - час останньої зміни власника або прав доступу до файлу.
   *-Mtime - час останньої зміни файлу.
   *-Newer другой_файл - шукати файли створені пізніше, ніж другой_файл.
   *-Delete - видаляти знайдені файли.
   *-Ls - генерує висновок як команда ls-dgils.
   *-Print - показує на екрані знайдені файли.
   *-Exec command {} \; - виконує над знайденим файлом зазначену команду, зверніть увагу на синтаксис.
   *-Ok - перед виконанням команди зазначеної в-exec, видає запит.
   *-Depth - починати пошук з найглибших рівнів вкладеності, а не з кореня каталогу.
   *-Prune - використовується, коли ви хочете виключити з пошуку певні каталоги.

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

Знайти всі файли, починаючи з поточної директорії, назва яких починається на my.

find. -Name 'my *'

[Правити] Пошук в певному каталозі

Знайти всі файли, починаючи з кореневої директорії, назва яких починається на my.

find /-name 'my *'

Пошук в директоріях / usr / local / man та / opt / local / man файлів, назва яких починається на my.

find / usr / local / man / opt / local / man-name 'my *'

[Правити] Пошук по декількох імен файлів

Знайти всі файли, починаючи з поточної директорії, назва яких починається на my або qu. Зверніть увагу, що за замовчуванням всі аргументи з'єднані за допомогою логічного і (опція '-a'). Якщо необхідно об'єднати кілька аргументів логічним або - використовуйте опцію '-o'.

find. \ (-Name "my *"-o-name "qu *" \)-print

[Правити] Пошук файлів певного типу

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

find. -Name "my *"-type f

[Правити] Висновок розширеної інформації про фото

Попередні команди виводили імена файлів, тому що за замовчуванням find виконує команду-print. Опція-ls виводить інформацію про фото в форматі 'ls-la'.

find. -Name "my *"-type f-ls


[Правити] Виконання команди

Опція-exec виконує наступну за нею команду і підставляє замість {} поточний файл. Знайти всі каталоги нижче зазначеного каталогу і змінити їм права доступу:

find / path-type d-exec chmod 0755 {} \;

[Правити] Пошук в залежності від часу створення

Вивести список файлів у всій файловій системі, змінених протягом останньої хвилини:

find /-mmin -1-print

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

find /-mtime +31-print

[Правити] Пошук за розміром файлу

Вивести список файлів у всій файловій системі, чий розмір більше 100 Мб:

find /-size +100 M-print


[Правити] Пошук файлів належать певному користувачеві

find. -User <userid>

[Правити] Ігнорування помилок

Якщо при пошуку виникає помилка (наприклад - немає доступу читання з каталогу) то висновок команди стає менш інформативним. Перенаправьте висновок STDERR в / dev / null.

find /-name 'secret.keys'-print 2> / dev / null