[英]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.