繁体   English   中英

使用 bash 在 Linux 中的文件夹中查找拥有文件的所有用户

[英]find all users that own files in a folder in Linux using bash

我正在尝试查找在特定路径中拥有文件的所有用户。 现在我正在使用带有sortuniq 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

例子

结果在/var/www/html 10 个用户有文件。 在此处输入图片说明

cd进入测试目录。 6 个用户有文件。 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM