Поиск файлов в 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{} \;

До новый встреч в следующих статьях. Пишите ваши комментарии.

Related posts:

  1. Поиск файлов измененных за последнее время Если нам нужно найти все файлы в каталоге ‘/var’, созданные...
  2. Поиск больших файлов в linux Один из вариантов быстро найти большие файлы, скажем размером больше...
  3. Простое копирование файлов в linux/unix системах Для переноса каталога easycopy с одного сервера на другой, используем...
  4. Подсчет занимаемого места на сервере Чтобы вывести список каталогов, размер которых превышает 2G, можно использовать...
  5. rm: Argument list too long Если в вашем каталоге слишком много файлов (например файлов сессий...
You can leave a response, or trackback from your own site.

Оставить комментарий

*