簡體   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