Linux命令du -sk * |sort -rn|head含义解析及学习资源推荐
命令完整执行逻辑拆解
整条命令通过管道符|串联了3个独立的Linux工具,执行顺序从左到右,前一个命令的输出会直接作为后一个命令的输入,逐段作用如下:
du -sk *
这部分是整个命令的数据源:-s(summarize)参数:仅统计每个目标对象的总磁盘占用,不递归输出子目录下的明细数据-k参数:强制以KB(1024字节块)为单位输出统计结果,不受系统默认块大小配置影响*是Shell通配符,匹配当前目录下所有非隐藏的文件和子目录
执行后会输出两列文本:第一列为对应对象的KB级占用数值,第二列为对象名称,每个对象占一行。
sort -rn
这部分负责对du输出的结果做排序:-n(numeric-sort)参数:指定按数值大小排序,而非默认的字符串字典序——这个参数非常关键,如果不加这个参数,排序时会把数字当字符比较,出现"100KB"排在"2KB"前面的逻辑错误-r(reverse)参数:将默认的从小到大升序排序,改为从大到小降序排序
执行后会把所有文件/目录按磁盘占用从高到低排列。
head
这部分负责截取最终展示的结果:默认读取输入内容的前10行打印到终端,也就是最终只展示当前目录下磁盘占用最高的前10个文件/目录。如果需要展示前N项,可以加数字参数,比如head -20就是展示前20个大文件/目录。
复杂Linux命令学习建议与资源
- 优先用系统自带man手册:所有Linux命令都可以通过
man 命令名查看官方权威文档,参数含义、使用注意事项、示例都有完整说明,遇到看不懂的参数先查man是效率最高的方式,不需要额外找第三方资料。 - 先吃透Shell基础语法:管道、重定向、通配符、基础正则是组合命令的核心逻辑,所有复杂命令本质上都是单一功能的小工具靠这些语法拼接出来的,把这些基础规则搞懂,再复杂的命令都能拆成独立小段理解。
- 掌握高频核心工具:除了基础的文件、磁盘类命令,重点熟悉文本处理类核心工具
grep、sed、awk的常用参数,绝大多数需要拼接的复杂命令,都是磁盘统计、文本处理类工具的组合。 - 拆段调试练习:遇到长命令不要硬猜逻辑,从左到右逐段执行看输出变化,比如先跑
du -sk *看原始输出,再加| sort -rn看排序后的效果,最后加| head看最终结果,每一段对数据做了什么修改一目了然,练得多了自然能快速读懂组合命令。
内容的提问来源于stack exchange,提问作者Dawson Smith
相关产品推荐
相关产品推荐

