Как искать файлы с определенным разрешением


8

Как я могу искать файлы, которые имеют определенное разрешение. Например, у меня есть 10000 файлов, и я хочу найти те, которые имеют флаг READ ONLY. В другом случае я хочу искать другого, у которого есть конкретный владелец. Или в другом, чтобы увидеть файлы, которые только для чтения и исполняемые.

Ответы:


9

Вероятно, проще всего использовать 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 

Примечание. Указание тире перед разрешениями (например -perm -444) означает, что будут найдены все файлы, имеющие флаг только для чтения, а не только те, которые имеют 444; чтобы найти 444 точно и только это, просто удалите черту (например -perm 444).

Примечание 2. Можно также искать комбинации разрешений, используя -aдля и и -oдля или; например, чтобы найти именно эти разрешения, введите:

find <location> -type f -perm 744 -o -perm 666

Каталоги можно искать с помощью -type d.

Смотрите man findдля других доступных перестановок.


+1 за упоминание о разнице между -444и444
Fr0zenFyr

Для меня -perm -444находит файлы, которые имеют readразрешение, а не те, которые доступны только для чтения (имеется в виду, имеют только read и никаких других разрешений).
Янис Элмерис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.