Как мне искать файлы с определенным разрешением. Например, у меня есть 10000 файлов, и я хочу найти те, которые имеют флаг READ ONLY. В другом случае я хочу искать другого, у которого есть конкретный владелец. Или в другом, чтобы увидеть файлы, которые только для чтения и исполняемые.
Вероятно, проще всего использовать команду find
, которая позволяет рекурсивно осуществлять поиск по дереву каталогов. Например, если вы особенно хотите найти файлы, доступные только для чтения, вы можете набрать
find <specify location> -type f -perm -444
Для файлов, принадлежащих конкретному пользователю, вы можете использовать
find <location> -type f -user mike
Для исполняемых файлов. (для всех) вы можете использовать
find <location> -type f -perm -777
Для тех, которые являются исполняемыми и доступны только для чтения, вы должны использовать 555 вместо 777 в примере выше. Вы также можете искать файлы, принадлежащие группе, заменив -user mike
на -group mike
.
Чтобы свести на нет условия поиска и искать абсолютно противоположное, вы можете использовать восклицательный знак, например, так:
find <location> -type f ! -perm -444
Примечание. ) означает, что будут найдены все файлы, которые имеют флаг только для чтения, а не только те, которые 444; чтобы найти 444 точно и только это, просто удалите черту (например, -perm 444
).
Примечание 2. Можно также искать комбинации разрешений, используя -a
для и и -o
для или; например, чтобы найти именно эти разрешения, введите:
find <location> -type f -perm 744 -o -perm 666
Каталоги можно искать с помощью -type d
.
См. man find
для других доступных перестановок.