Linux

如何為每個使用者生成文件夾所有權列表?

  • August 13, 2012

我想為 Ubuntu 中的每個使用者生成幾個單獨的列表。列表包含屬於每個使用者的文件和文件夾。

使用以下命令列出系統中的所有使用者:

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

假設“user1”是第一個結果,我想得到列表:

find / -user "user1" > user1.txt

因此,我的問題是如何盡可能少地使用命令獲取所有列表。提前致謝。

getent passwd | cut -d: -f1 | while read USER ; do
 echo $USER #use this to show some kind of progress otherwise delete this string
 find / -user $USER > ${USER}.txt 2>/dev/null
done

附言。有關更多資訊,請查看shell 循環

然而,這是一個非常糟糕的主意:您需要find在整個文件系統上執行與您擁有的使用者一樣多的使用者。

我們將變得更聰明,並以另一種方式做到這一點:我們將find只執行一次並將其輸出拆分為如下文件:

find / -printf "%u %p\n" | awk '{print $2 > $1".txt"}'

引用自:https://unix.stackexchange.com/questions/45366