在Linux上获取文件夹大小

我有很多家庭文件夹在/ home /下,我想要在每个用户文件夹的总大小容易阅读列表中。

  1. / home / user1 100MB
  2. / home / user2 24MB
  3. / home / user3 54MB

等等

目前使用类似du -hc | grep total东西 du -hc | grep total

海事组织,厄尼和德佩斯的答案合并是最接近你要求的,除了它应该是'du -s / home / * / | sort -n'。 'du -h'与'sort -n'sorting不正确,因为它不再是一个数字,例如10G在10M之前sorting

另一种方法是,如果要查找每个用户使用的总磁盘空间(不pipe是否位于其主目录中)是安assembly额使用情况,请在相关文件系统上启用配额记帐, 0(无限)配额。 这将告诉你使用的磁盘空间以及使用的文件/ inode数量。

那么你可以运行'repquota -a'来得到这样的报告:

 ***报告设备/ dev / sda8上的用户配额
阻止宽限期:7天;  Inode宽限时间:7天
                        块限制文件限制
用户使用软硬恩典使用软硬恩典
 user1  -  67844 0 0 7748 0 0
 user2  -  21908 0 0 1742 0 0
 user3  -  27212 0 0 258 0 0
 user4  -  25492 0 0 328 0 0
 user5  -  575536 0 0 2972​​ 0 0
 user6  -  83944 0 0 1114 0 0
 user7  -  501304 0 0 3418 0 0
 user8  -  760068 0 0 5011 0 0
 user9  -  1445396 0 0 1932 0 0
 ...

repquota还有一个“-s”选项用于“人类可读”输出,如du的“-h”。 不足为奇的是,它与du -h具有相同的sorting问题。

 du -hcs /home/*/ 

或者,正是你想要的:

 for i in /home/*/; do user=${i#/*/} space=$(du -hs "$i" | cut -f1) echo "${user%/} = $space" done 

你想知道什么?

如果您想按大小sorting,请尝试以下操作:

 du -s /home/ |sort -n 

运行这个:

 du -sh /home/* 

你应该快乐。