Поиск файлов в Linux

Часто возникают ситуации, когда требуется найти один или несколько файлов, соответствующих определенному критерию, в структуре файловой системы. Для решения этой задачи в Linux существует команда find. Она выполняет рекурсивный поиск по дереву каталогов, ищет файлы, удовлетворяющие заданному критерию, и может выполнить с найденными файлами определенное действие. Команда имеет следующий синтаксис:
find     Путь     Параметр     Операция

find - Сама команда
Путь - Место для поиска: /, /etc, /var/www, /usr/lib и т.д.
Параметр - Поиск по имени: -name
Параметр - Поиск по UID: -user
Параметр - Поиск по GID: -group
Параметр - Поиск по разрешениям: -perm
Параметр - Поиск по индексному узлу: -inum
Параметр - Поиск по времени обращения: -atime
Параметр - Поиск по времени модификации: -mtime
Команда find находит файлы, удовлетворяющие заданному критерию, и выводит полный путь к каждому из них. Рассмотрим примеры применения find: 1. Поиск файла file9 в домашних каталогах пользователя:
find /home/ -name file9 -print
Команда find по умолчанию выводит результаты на экран, поэтому передавать параметр -print не обязательно. 2. Поиск в каталоге /dev/ файлов и каталогов, имена которых начинаются с sg:
find /dev -name sg*
Звездочка (*) используется здесь как подстановочный символ. Запись sg* обозначает любые файлы и каталоги, имена которых начинаются с sg. 3. Поиск файлов размером более 1000 блоков (размер одного блока равен 512 байтам) в каталоге пользователя root:
find /root -size +1000
4. Поиск в каталоге /home файлов, владельцем которых является пользователь nagg:
find /home -user nagg
5. Поиск в каталоге /etc/init.d файлов, модифицированных более 30 дней назад:
find /etc/init.d -mtime +30
6. Поиск в каталоге /etc/init.d файлов, к которым не было обращений за последние 90 дней:
find /etc/init.d -atime +90
7. Поиск в каталоге /dev символьных файлов DSF с правами доступа по маске 700:
find /dev/rdsk -type c -perm 700
8. Поиск в каталоге /user символических ссылок с разрешениями 777:
find /usr -type l -perm 777
9. Поиск файлов temp1 по всему дереву каталогов и их удаление без подтверждения:
find / -name temp1 -exec rm{} \;
Шаблон {} \; - часть синтаксиса, которая должна определяться именно таким образом. 10. Поиск файлов temp1 по всему дереву каталогов и их удаление после подтверждения:
find / -name temp1 -ok rm{} \;
До новый встреч в следующих статьях. Пишите ваши комментарии.

Добавить комментарий