1. Список ключей

  • -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 — используется, когда вы хотите исключить из поиска определённые каталоги.

    1. Примеры

      1. Поиск в текущей директории

Найти все файлы, начиная с текущей директории, название которых начинается на my.

find . -name 'my*'

      1. Поиск в определенном каталоге

Найти все файлы, начиная с корневой директории, название которых начинается на my.

find / -name 'my*'

Поиск, в директориях /usr/local/man и /opt/local/man, файлов, название которых начинается на my.

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

      1. Поиск по нескольким именам файлов

Найти все файлы, начиная с текущей директории, название которых начинается на my или qu. Обратите внимание, что по умолчанию все аргументы соединены с помощью логического и (опция '-a'). Если необходимо объединить несколько аргументов логическим или - используйте опцию '-o'.

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

      1. Поиск файлов определенного типа

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

find . -name "my*" -type f

      1. Вывод расширенной информации о файле

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

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

      1. Выполнение команды

Опция -exec выполняет следующую за ней команду и подставляет вместо {} текущий файл. Найти все каталоги ниже указанного каталога и изменить им права доступа:

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

      1. Поиск в зависимости от времени создания

Вывести список файлов во всей файловой системе, изменённых в течение последней минуты:

find / -newerct '1 minute ago' -print

Вывести список файлов во всей файловой системе, которые были изменены более 31 дня назад:

find / -mtime +31 -print

      1. Поиск файлов принадлежащих определенному пользователю

find . -user <userid>

      1. Игнорирование ошибок

Если при поиске возникает ошибка (например - нет доступа чтения из каталога) то вывод команды становится плохо читабельным. Перенаправьте вывод STDERR в /dev/null.

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

grep — утилита командной строки, которая находит на вводе строки, отвечающие заданному регулярному выражению, и выводит их. Название представляет собой акроним английской фразы «search globally for lines matching the regular expression, and print them» — «искать везде строки, соответствующие регулярному выражению, и выводить их».

Изначально была создана для операционной системы UNIX.

Существуют модификации grep: egrep (с обработкой расширенных регулярных выражений), fgrep (трактующая символы $*[]^|()\ буквально), rgrep (с включённым рекурсивным поиском). Как сказано в руководстве man (с точностью до перевода) «egrep то же самое что grep -E. fgrep то же самое что grep -F. rgrep то же самое что grep -r».

Соседние файлы в папке материалы к собеседованию