如何在Bash中获取指定目录下最大文件/文件夹的名称与字节大小
优化后实现方案
直接执行以下命令即可得到符合要求的输出:
du -ab "$DIR"/* | sort -nr | sed 's/^\([0-9]\+\)\s\+\(.*\)$/\2 \1/' | head -n1
各部分作用说明
du -ab "$DIR"/*-a参数统计目标目录下所有文件、文件夹条目-b参数强制以字节为单位输出体积,解决原命令单位不符的问题- 直接指定
$DIR路径,无需提前切换目录
sort -nr-n按数值规则排序,避免默认字典序出现的排序错误-r倒序排列,体积最大的条目会排在第一行
sed 's/^\([0-9]\+\)\s\+\(.*\)$/\2 \1/'- 把du默认输出的「大小 名称」顺序调换为要求的「名称 大小」,同时兼容带空格的文件名场景
head -n1仅取第一行的最大条目结果
如果确认目标目录下的文件名都不含空格,可以用更简洁的版本:
du -ab "$DIR"/* | sort -nr | awk 'NR==1{print $2, $1}'
内容的提问来源于stack exchange,提问作者vojtam
相关产品推荐
相关产品推荐

