найти всех пользователей, которые владеют файлами в папке в Linux, используя bash - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь найти всех пользователей, которым принадлежат файлы по определенному пути.Прямо сейчас я использую find с sort и uniq, но если файлов / папок много, это может занять много времени.Мне было интересно, есть ли более быстрый / лучший способ?

$ sudo find / -xdev -type f -printf "%u\n" | sort | uniq

man
root
user1
user2
user3

1 Ответ

1 голос
/ 30 марта 2019

Как вы прокомментируете, если подумать о местах в системе Linux / Unix, где список уникальных идентификаторов пользователей можно получить более эффективно, чем при запуске find в /, переданном по каналу sort | uniq, файл системных паролей будет быть намного лучшим источником информации.

Например, чтобы получить отсортированный уникальный список всех учетных записей пользователей в системе, которые вы можете использовать:

$ awk -F: '{print $1}' /etc/passwd | sort

или, если вы предпочитаете sed, то

$ sed 's/:.*$//' /etc/passwd | sort

Любой из них будет на несколько порядков быстрее, чем результаты от find до sort | uniq.

Удачи в написании сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...