如何按字母顺序列出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 |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