linux,Mac下lu 一把

习惯Terminal没有不知道ls命令的(等同于DOS的dir),经常只是需要查看目录的内容大小,但ls -h显示的只是目录的本身大小,而且很多项内容

ls 在这方面的两个诟病出现了:

小诟1. 显示的信息很全,我们只提取Size和Name两列,分别是第5和9列

linux,Mac下lu 一把_第1张图片

但是发现不对,像Edge的话起码有200G,但是为什么显示的是306B,说明ls只是显示目录的本身大小,不显示内容大小

大诟2. 不显示目录的实际大小,要显示目录(文件夹)的内容大小,需要用到du(disk utility的缩写)来显示

linux,Mac下lu 一把_第2张图片

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

linux,Mac下lu 一把_第3张图片

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

linux,Mac下lu 一把_第4张图片

同时,使得接受*匹配

linux,Mac下lu 一把_第5张图片

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

哈哈,三方面的顾虑都解除了,函数最终确定为

下载为: lus.sh

linux,Mac下lu 一把_第6张图片

嘻嘻嘻嘻嘻,嘻嘻嘻嘻嘻,嘻嘻嘻嘻嘻,很高兴的

 

你可能感兴趣的:(linux,Mac下lu 一把)