#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