如何列出我拥有的文件以进行配额检查?

如何列出我拥有的文件以进行配额检查?

在 Linux(RHEL 6)上,列出给定文件系统上符合配额的所有文件和大小的最佳方法是什么?

我们有一个项目目录,我目前正在做的一切都很小,但我的配额已满,我想看看还有什么是我的,这样我就可以清理一下。

答案1

使用 时find,您应该使用一种安全的方式,以处理文件名中可能出现的空格和其他奇怪符号。这应该可以做到(前提是您的finddu版本接受以下选项):

find . -type f -user "$USER" -print0 | du -ch --files0-from=-

-c选项是在最后得到一个不错的总数)。但这不会计算目录的大小。

如果在目录树中有一些您无法访问的目录,您的屏幕上可能会出现一些垃圾(权限被拒绝),因此您可能需要重定向stderr/dev/null

find . -type f -user "$USER" -print0 2>/dev/null | du -ch --files0-from=-

答案2

我可能只会根据用户名执行查找命令,我认为这就是他们计算配额的方式。

就像是:

#!/bin/bash

for i in `find . -type f -user $(whoami)`; do
    du -h ${i}
done

这将以人类可读的格式列出 $(whoami) 拥有的所有文件及其文件大小。

不过,这个列表在我的系统上确实很长,所以我可能会建议将 stdout 输出到该文件(> output.txt例如)或添加-maxdepth #命令find以将其限制在可管理的目录级别。

相关内容