В Linux / Unix есть ли способ перечислить все права собственности на группы, которые отображаются под определенным путем к папке?

#linux #unix #permissions #find #owner

Вопрос:

Как сказано в названии…Мне нужно пройти путь и перечислить каждую группу, которой принадлежит файл по этому пути…не зная имен групп.

Пример:

Папка содержит:
-РВ-РВ-РВ — 1 мой_логин группа1 107717 26 февраля 08:03 файл
-РВ-РВ-РВ — 1 мой_логин группа2 114746 Мар 1 12:53 thatfile
-РВ-РВ-РВ — 1 мой_логин группа3 115327 2 марта 08:42 theirfile
-РВ-РВ-РВ — 1 мой_логин группы4 110555 10 марта 10:32 в именах
-РВ-РВ-РВ — 1 мой_логин 5 группа 102131 1 февраля 15:59 stupidfile

Мне понадобился бы этот вывод:
группа1
группа2
группа3
группа4
группа5

Имей в виду…Это должна быть какая-то команда или скрипт sort…my пример прост, но фактические папки имеют глубину 5-10 вложенных папок с сотнями тысяч файлов и, возможно, несколькими десятками групп.

Спасибо!

Ответ №1:

Предполагая, что GNU найдет:

 find /path/to/MyFolder -printf "%gn" | sort | uniq -c
 

покажет все отдельные группы, владеющие файлами в дереве каталогов, и количество файлов, принадлежащих каждой группе.

Комментарии:

1. вау… быстро и легко…сработало как надо, спасибо!!

2. Если вы хотите получить группы только для файлов, а не для каталогов, вы можете вставить -type f их перед -printf