В настоящее время я пытаюсь исправить свою систему квот. Моя проблема в том, что я не могу определить, все ли файлы в каталоге принадлежат одному и тому же пользователю. Если возможно, есть ли способ перечислить разных владельцев файлов в каталоге (рекурсивно).
например get-owners-of DIRNAME
command-line
permissions
filesystem
quota
Jack7076
источник
источник
Ответы:
Вы можете использовать
find
для печати пользователя (владельца) и группы, а затем извлечь уникальные комбинации, напримеристочник
-mindepth 1
перед-printf
. И я бы не стал включатьsudo
в пример, когда OP не работает в контексте, где это требуется.-t:
значение в этом контексте?перечислит владельцев всех файлов.
Это можно отсортировать и удалить дубликаты, отправив их в
sort -u
:Как отмечает Steeldriver, это не рекурсивно. Я пропустил, что об этом просили. Это можно сделать рекурсивным, включив globstar:
В целом, ответ SteelDriver, вероятно, лучше и должен быть принятым ответом здесь :)
источник
ARG_MAX
это проблема, которую вы могли бы решитьprintf '%s\0' **/* | xargs -0 stat -c %U
(посколькуprintf
она встроенная, у нее не должно быть такого же ограничения длины)Вы можете найти более эффективным прямой поиск файлов, не принадлежащих пользователю ...
источник
DIY метод с помощью Python:
Это перебирает все имена файлов, перечисленные в командной строке, получает UID владельца файла, а с помощью модуля pwd получает имя пользователя владельца. После этого имя и имя пользователя объединяются для удобной печати и разделяются двоеточием. Работает так:
источник