linux,Mac下 ls 查看目录(文件夹)内容大小

习惯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

技术分享

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。