Find | это... Что такое Find? (original) (raw)

**find** — утилита поиска файлов, используемая в UNIX‐подобных операционных системах. Может производить поиск в одной или нескольких директориях с использованием критериев, заданных пользователем. По умолчанию, find возвращает все файлы после текущего в рабочей директории. Более того, find позволяет применять пользователю определённые действия ко всем найденным файлам. Также поддерживаются регулярные выражения.

Содержание

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

Примеры

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

Найти все файлы, начиная с текущей директории, название которых начинается на 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 / -newerct '1 minute ago' -print

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

find / -mtime +31 -print

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

find . -user

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

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

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

Ссылки

На русском языке

На английском языке

Стандартные программы UNIX (все программы)
Файловые системы chrootdddffdiskfsckgrublilomke2fs • mkreiserfs • mkisofsmkswapmountumount
Файлы и каталоги catchattrcdchmodchownchgrpcksumcmpcpdiffdufilefuserlnlslsofmkdirmv • od • pwdrmrmdirsplittouch
Процессы atcrontabexitkillkillallnicenohuppgreppidofpkillpsrenicesleeptimetopwaitwatch
Пользователи envfingeridlognamemesgpasswdsusudouptimewwallwhowhoamiwrite
Сеть ftp • hostifconfignetcatnetstatnmapnslookuppingrloginsshtraceroutewget
Тексты AWKcommcutedex • expand • unexpand • fmtheadiconvjoinlessmorepaste • pr • sedsorttactailtruniqwcxargs
Командная строка aliasbasenamebashbinddirnameechoexprfalseprintftesttrueunset
Поиск findgrepstringswhereiswhich
Разное bannerbccaldate • help • lpman • history • sizeteeunameyes