Список владельцев файлов в папке на linux

У меня есть папка со многими файлами. Файлы были созданы разными пользователями. Я не знаю о сценариях оболочки.

Мне нужно получить список имени пользователя (только) владельцев файлов.

Я могу сохранить вывод ls -l, а затем проанализировать его с помощью perl python и т.д.

Но как я могу это сделать, используя сценарии оболочки?

Ответ 1

Простым является

ls -l /some/dir/some/where | awk '{print $3}' | sort | uniq

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

Ответ 2

stat -c "%U" *| sort -u

Ответ 3

Два решения пока хороши, но имеют свои ограничения.

Это должно гарантировать правильную и рекурсивную поиск каждого файла в дереве каталогов.

sudo find /some/dir/ -exec stat -c "%U" {} + | sort | uniq
Другими словами, рекурсивно искать файлы в /some/dir и выполнять stat -c "%U" (печатать имя пользователя) в файлах, как можно меньше приглашений stat (-exec <cmd> {} +), тогда, конечно, sort список имен пользователей, так что вы можете, в свою очередь, отбросить их только к набору имен uniq ue.