如何使用du命令获取创建文件的用户名

如何使用du命令获取创建文件的用户名

我们有一个 find 命令,它显示占用的前 10 个文件

$ find /root -type d -name "dummy" -prune -o -type f -exec du -a --time {} + | sort -n -r | head -n 10
1212     2018-11-01 08:35        File.txt

有什么方法可以获取更新此文件的用户的最后更新名称和大小(以 MB/GB 为单位)?

答案1

我不知道什么最后更新的名称应该是,但这可能并不重要,因为你想要的或多或少是不可能的。

Linux 文件系统不存储 UID 最后一次更改的信息,只存储时间。因此该信息在文件系统中根本不可用。

最好的方法可能是autitd记录系统中的所有写访问(这种方法不会使系统更快,但您可以记录到 RAM 磁盘(tmpfs))。

答案2

find并返回 10 个最大的文件,使用stat

find . \
-exec stat --printf '%s\t%y\t%U\t%n\0' {} + \
|  sort -rnz | head -zn10 | xargs -0 -n1

相关内容