习惯Terminal没有不知道ls命令的(等同于DOS的dir),经常只是需要查看目录的内容大小,但ls -h显示的只是目录的本身大小,而且很多项内容.
ls 在这方面的两个诟病出现了:
小诟1. 显示的信息很全,我们只提取Size和Name两列,分别是第5和9列

但是发现不对,像Edge的话起码有200G,但是为什么显示的是306B,说明ls只是显示目录的本身大小,不显示内容大小
大诟2. 不显示目录的实际大小,要显示目录(文件夹)的内容大小,需要用到du(disk utility的缩写)来显示

这样,可以把这条命令存为alias,方便以后使用,alias ldu='ls -1 | xargs du -h -d 0 2>/dev/null' 到.bash_profile(Mac下),.bashrc(Debian系下)中,source;问题是这样只能显示当前目录下的情况,要是我想看Edge下按个目录比较大呢,办法就是先cd到那个目录,在ldu,但是每次都要输这么长的命令着实恼火,所以我想,把它变成一个函数

把这个函数放到bash配置文件(.bashrc或者.bash_profile)中,source,这样效果和ldu一样了,而且还可以显示非当前目录,但是我想把*通配符也加进来,例如我想显示P开都的目录的大小,同时还可以接受多个目录作为参数

同时,使得接受*匹配

同时接受文件大小正确显示

三方面的顾虑都解除了,函数最终确定为
下载为lus.sh:http://files.cnblogs.com/raybiolee/lus.zip

本文永久更新地址://m.ajphoenix.com/linux/22022.html