Home

Page 27
Page 27
background image

ualinux.com

27

U & L  

1 1 - 0 1

Первая опция принимает как имя пользователя, так и 

его идентификатор, а вторая — только идентификатор. На-

пример, если мне нужно будет найти все файлы, владель-

цем которых я являюсь, я воспользуюсь одной из команд:

fi nd -user jzb

fi nd -user 1000

fi nd -uid 1000

Также, вам может понадобиться найти файлы принад-

лежащие пользователю А или пользователю Б. Для этого 

необходимо объединить два условия поиска при помощи 

оператора-o:

fi nd -user root -o -user www-data

Такая команда будет искать файлы, владельцем ко-

торых является пользователь root или же пользователь 

www-data. Если же, например, вы хотите найти файлы, вла-

дельцем которых пользователь не является, используйте 

оператор «-not»:

fi nd -not -user www-dat

a

Естественно, операторы работают и с другими опция-

ми. К примеру, следующая команда найдёт файлы, вла-

дельцем которых является www-data и которые размером 

не более ста килобайт:

fi nd -user www-data -not -size +100k

ПОИСК ПО ГРУППЕ-ВЛАДЕЛЬЦУ

Ещё один способ использования fi nd — поиск файлов, 

принадлежащих какой-то группе пользователей. Для этого 

используется опция «-group», параметром которой долж-

но быть имя группы или её идентификатор. Например:

fi nd -group admin

В повседневной жизни вы, вероятней всего, будете 

комбинировать эту опцию с другими. Например, если вам 

нужно отыскать файлы, принадлежащие определённому 

пользователю и группе.

ПОИСК ПО ПРАВАМ ДОСТУПА

Иногда может возникнуть необходимость найти файлы, 

доступные для записи кому угодно или файлы, имеющие 

какие-либо другие «плохие» разрешения. Подобный поиск 

fi nd может осуществлять при помощи различных опций. 

Простейшие из них — это операторы -readable, -writable 

и -executable, которые работают применительно к пользо-

вателю, запустившему fi nd. Имейте ввиду, что в слишком 

древних версиях fi nd эти опции отсутствуют.

Другой способ искать файлы с определённым режимом 

доступа — использование опции -perm, позволяющей точ-

но определять права доступа искомых файлов. Например, 

если вы хотите найти файлы, биты выполнения которых 

установлены для владельца и группы, используйте коман-

ду:

fi nd -type f -perm -110

Здесь параметр «110» сообщает fi nd набор битов до-

ступа, а «-» заставляет игнорировать все остальные. Таким 

образом, если файл имеет ко всему прочему установлен-

ные биты чтения и записи, он также будет соответствовать 

критерию поиска, поскольку для fi nd важно лишь то, что 

установлены указанные биты выполнения.

Если вам необходимо точное совпадение с указанным 

режимом доступа, то уберите опцию«-».

А что, если вам необходимо найти файлы, исполняемые 

владельцем или группой? В это случае вместо «-» исполь-

зуйте «/»:

fi nd -type f -perm /110

Поиск по правам доступа используется часто, хотя и 

кажется несколько сложным, поэтому вам может потребо-

ваться какое-то время, чтобы привыкнуть к его синтаксису. 

Особенно это касается новичков, которые ещё толком не 

разобрались с механизмом взведения битов доступа фай-

лов. В этом случае чтение man-страницы fi nd особенно ре-

комендуется.

                ИСПОЛЬЗОВАНИЕ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ

Иногда вам может потребоваться использование регу-

лярных выражений, чтобы определить критерии поиска. 

И fi nd поддерживает их даже в большей степени, чем вы, 

возможно, ожидали. fi nd не только поддерживает исполь-

зование регулярных выражений, но и позволяет исполь-

зовать различные их типы. Тип регулярного выражения 

можно определить при помощи опции -regextype, кото-

рая принимает параметры posix-awk, posix-egrep и тому 

подобные. В man-странице вы найдёте полный перечень 

поддерживаемых типов регулярных выражений вашей 

версией fi nd.

Небольшой пример. Скажем, вам нужно найти файлы, 

имеющие расширения «.php» и «.js». Такое можно осуще-

ствить следующей командой:

fi nd 

-regextype 

posix-egrep 

-regex 

'.*(php|js)$'

Выглядит страшновато, не так ли? Эта команда говорит 

fi nd использовать синтаксис регулярных выражений egrep 

(-regextype posix-egrep), а затем сообщает само регулярное 

выражение. Выражение обрамлено одинарными кавычка-

ми, чтобы оболочка не пыталась по-своему интерпретиро-

вать спецсимволы, использующиеся в выражении. В самом 

выражении «.*» означает любой символ, повторяющийся 

ноль или более раз. Часть выражения«(php|js)» сообща-

ет о необходимости искать «php» или «js» (символ верти-

кальной черты используется для определения оператора 

«или»). И, наконец, знак доллара в конце выражения сооб-

щает о том, что предыдущая часть выражения должна ис-

каться в конце строки.

U

ser

  

A

nd

LINUX

Other


Copyright © 2021 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.