Ответ 1
Простым является
ls -l /some/dir/some/where | awk '{print $3}' | sort | uniq
который предоставляет вам уникальный и отсортированный список владельцев.
У меня есть папка со многими файлами. Файлы были созданы разными пользователями. Я не знаю о сценариях оболочки.
Мне нужно получить список имени пользователя (только) владельцев файлов.
Я могу сохранить вывод ls -l, а затем проанализировать его с помощью perl python и т.д.
Но как я могу это сделать, используя сценарии оболочки?
Простым является
ls -l /some/dir/some/where | awk '{print $3}' | sort | uniq
который предоставляет вам уникальный и отсортированный список владельцев.
stat -c "%U" *| sort -u
Два решения пока хороши, но имеют свои ограничения.
Это должно гарантировать правильную и рекурсивную поиск каждого файла в дереве каталогов.
sudo find /some/dir/ -exec stat -c "%U" {} + | sort | uniq
Другими словами, рекурсивно искать файлы в /some/dir
и выполнять stat -c "%U"
(печатать имя пользователя) в файлах, как можно меньше приглашений stat
(-exec <cmd> {} +
), тогда, конечно, sort
список имен пользователей, так что вы можете, в свою очередь, отбросить их только к набору имен uniq
ue.