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