我们有一个 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