按字母顺序列出du命令的结果

如何按字母顺序列出du命令的结果?

我知道我可以使用find命令按字母顺序列出它们,但没有目录大小,我也-maxdepth两个命令使用了-maxdepth选项,这样列表只能在一个子目录下。

这是斜体问题:

编写一个实现目录大小分析器的shell脚本。 在你的脚本中你可以使用普通的Linux命令。 脚本应列出给定参数或当前目录的每个立即子目录所占用的磁盘存储(如果没有给出参数),并按字母顺序排列子目录名称。 另外,列出磁盘使用率最高的子目录的名称及其存储大小。 如果多个子目录具有相同的最高磁盘使用率,请列出这些子目录中的任何一个。 包括有意义的简短评论 适用于此脚本的bash命令列表包括但不限于:cat,cut,du,echo,exit,for,head,if,ls,rm,sort,tail,wc。 您可以使用bashvariables以及临时文件来保存中间结果。 在执行结束时删除所有临时文件。

进入du $dir -hk --max-depth=2 | sort -o temp1.txt之后,这是我的结果 在命令行中du $dir -hk --max-depth=2 | sort -o temp1.txt然后cat temp1.txt

 12 ./IT_PLAN/Inter_Disciplinary 28 ./IT_PLAN 3 ./IT_PLAN/Core_Courses 3 ./IT_PLAN/Pre_reqs 81 . 9 ./IT_PLAN/IT_Electives 

它应该是这样的:

 28 ./IT_PLAN 3 ./IT_PLAN/Core_Courses 12 ./IT_PLAN/Inter_Disciplinary 9 ./IT_PLAN/IT_Electives The subdirectory with the maximum disk space use: 28 ./IT_PLAN 

再次,我无法按字母顺序排列结果。

尝试这样做:

 du $dir -hk --max-depth=2 | sort -k2 

-k2是列号2

http://www.manpagez.com/man/1/sort/

du $dir -hk --max-depth=2 |awk '{print $2"\t"$1}'|sort -d -k1 -o temp1.txt如果你想删除./路径

  du $dir -hk --max-depth=2 |awk '{print $2"\t"$1}'|sed -e 's/\.\///g'|sort -d -k1 -o temp1.txt