Для нахождения в текущем каталоге всех файлов, в именах которых встречается хотя бы один символ в верхнем регистре, введите следующую команду:
$ find . — name "[A‑Z]*" — print
Найти в каталоге /etc файлы, имена которых начинаются с символов "host", позволяет команда
$ find /etc -name "host*" — print
Поиск в начальном каталоге всех файлов с расширением txt, а также файлов, имена которых начинаются с точки, производит команда
$ find ~ -name "*.txt" — print -o -name ".*" — print
Опция -o является обозначением операции логического ИЛИ. В случае ее применения помимо файлов с обычными именами будут найдены файлы, имена которых начинаются с точки.
Если вы хотите получить список всех файлов в системе, не имеющих расширения, выполните представленную ниже команду, «о будьте осторожны, так как она может существенно замедлить работу системы:
$ find / -name "*" — print
Ниже показано, как найти все файлы, в именах которых сначала следуют символы нижнего регистра, а за ними — две цифры и расширение .txt (например, ах37.txt):
$ find . — name "[a‑z][a‑z][0—9][0—9].txt" — print
Опция -perm позволяет находить файлы с заданным режимом доступа. Например, для поиска файлов с режимом доступа 755 (их может просматривать и выполнять любой пользователь, но только владелец имеет право осуществлять запись) следует воспользоваться такой командой:
$ find . — perm 755 -print
Если перед значением режима вставить дефис, будет произведен поиск файлов, Для которых установлены все указанные биты разрешений, остальные биты при этом
игнорируются. Например, следующая команда ищет файлы, к которым другие пользователи имеют полный доступ:
$ find . — perm -007 -print
Если же перед значением режима введен знак "плюс", осуществляется поиск файлов, для которых установлен хотя бы один из указанных битов разрешений, при этом остальные биты игнорируются.
Когда вы не хотите вести поиск в том или ином каталоге, воспользуйтесь опцией -prune. Она служит указанием остановить поиск на текущем путевом имени. Если путевое имя указывает на каталог, команда find не будет заходить в него. При наличии опции -depth опция -prune игнорируется.
Следующая команда проводит поиск в текущем каталоге, не заходя в подкаталог /bin:
$ find . — name "bin" — prune -o -print
Чтобы найти файлы, принадлежащие определенному пользователю, укажите в команде find опцию -user, а также имя пользователя. Например, поиск в начальном каталоге файлов, принадлежащих пользователю dave, осуществляется посредством такой команды:
$ find ~ -user dave -print
Поиск в каталоге /etc файлов, принадлежащих пользователю uucp, выполняет
следующая команда: |
$ find /etc -user uucp -print
Благодаря опции -nouser возможен поиск файлов, принадлежащих несуществующим пользователям. При ее использовании производится поиск файлов, для владельцев которых нет записи в файле /etc/passwd. Конкретное имя пользователя указывать не нужно: команда find выполняет всю необходимую работу сама. Чтобы найти все файлы, которые принадлежат несуществующим пользователям и находятся в каталоге /hоте, задайте вот такую команду:
$ find /home -nouser -print
Опции -group и -nogroup аналогичны опциям -user и -nouser и позволяют искать файлы, принадлежащие заданной группе или несуществующим группам. Ниже приведена команда для нахождения в каталоге /apps всех файлов, которыми владеют пользователи группы accts:
$ find /apps -group accts -print
Следующая команда ищет во всей системе файлы, принадлежащие несуществующим группам:
$ find / -nogroup -print
Опцию -mtime следует применять при поиске файлов, доступ к которым осуществлялся x дней назад. Если аргумент опции снабдить знаком ' — ', будут отобраны файлы, к которым не было доступа в течение x дней. Аргумент со знаком '+' приводит к противоположному результату — производится отбор файлов, доступ к которым осуществлялся на протяжении последних х дней.
Найти все файлы, которые не обновлялись в течение последних пяти дней, позволяет следующая команда:
$ find / -mtime -5 -print
Ниже приведена команда, выполняющая поиск в каталоге /var/adm файлов, которые обновлялись в течение последних трех дней:
$ find /var/adm -mtime +3 -print
Если необходимо найти файлы, доступ к которым осуществлялся в промежутке времени между обновлениями двух заданных файлов, воспользуйтесь опцией -newer. Общий формат ее применения таков: