我正在尝试从服务器中列出,我想知道是否可以通过任何终端编码来完成(我现在在这方面相当弱)
例如,在主目录中有大量的子文件夹(第 2 级),并且其中还有大量的子文件夹(第 3 级深度?)
因此,我想知道终端中的正常编码是否会给我带来:
- 哪个用户占用了最多的空间(深度为 3 级),同时显示文件夹
- 占用空间最多的前 10 个人(深度 2 级)
主目录:
|- sub_lvl_2_A
|- sub_lvl_3_A
|- sub_lvl_2_B
|- sub_lvl_3_B
|- sub_lvl_3_C
答案1
该du
命令以递归方式查找目录的估计大小。但它不会按大小对输出进行排序。
(您需要 root 权限才能运行)
实际上,您只需将参数更改为其-d
(最大深度)选项:
按大小降序打印每个用户主目录的大小:
sudo du -d 1 /home | sort -gr
打印每个用户主目录 (级别 3) 中的文件夹大小 (警告,这肯定会很长,您可能需要通过管道将其传输到less
) :
sudo du -d 2 /home
(如果输出很长):
sudo du -d 2 /home | less
如果您想按大小对每个用户的子目录进行排序,那么您必须du
为每个用户单独运行:
sudo du -d 1 ~user1 | sort -gr
sudo du -d 1 ~user2 | sort -gr
...等等。
如果您想从不同的起点开始工作,只需将上面的du
( /home
) 的最后一个参数更改为您想要工作的目录。将参数更改为-d
将改变它递归的层数。