[英]find all users that own files in a folder in Linux using bash
我正在尝试查找在特定路径中拥有文件的所有用户。 现在我正在使用带有sort
和uniq
find
但如果有很多文件/文件夹可能需要很长时间。 我想知道是否有更快/更好的方法?
$ sudo find / -xdev -type f -printf "%u\n" | sort | uniq
man
root
user1
user2
user3
根据您的评论,当考虑在 Linux/Unix 系统上的位置时,可以比在/
管道上运行find
更有效地获取唯一用户 ID 的列表以进行sort | uniq
sort | uniq
,系统密码文件将是更好的信息来源。
例如,要获取系统上所有用户帐户的排序唯一列表,您可以使用:
$ awk -F: '{print $1}' /etc/passwd | sort
或者如果你更喜欢sed
,那么
$ sed 's/:.*$//' /etc/passwd | sort
与将find
的结果进行sort | uniq
速度要快几个数量级sort | uniq
sort | uniq
。
祝你的脚本好运。
可以以“更好的方式”使用您的find
命令。 特别是因为您实际上希望文件的所有权作为用户列表但仅限于特定路径。 find 命令之后的斜杠/
将从顶部开始搜索。 因此,您将自上而下地查看所有结果。 (这些结果可能接近于仅列出用户。)
您可以cd
到特定目录cd /var/www/html/
并运行相同的命令将/
替换为.
find . -xdev -type f -printf "%u\n" | sort | uniq
或者掉进小路。
find /var/www/html/ -xdev -type f -printf "%u\n" | sort | uniq
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.