Shell脚本得到文件夹大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本得到文件夹大小相关的知识,希望对你有一定的参考价值。

这是得到某文件的大小:

#!/bin/bash
wc -c 文件路径 | awk 'print int($1/1024)'

现在我想得到一个文件夹的大小,脚本该怎么写?求高手指点。。。

ls -ld 文件夹路径 | awk 'print int($5/1024)'
或者:
du -b 文件夹路径 | awk 'print int($1/1024)'

跟你上面计算文件大小类似,得到的都是以KB为单位的大小。
如果要以Byte为单位,不要除以1024也不要int取整就是了。

注意:Linux的ext2或ext3文件系统会给目录分配一个inode块(索引节点),用来记录文件信息,所以文件夹的大小不是简单地将其中文件大小累加就能得到的,还包括了这个索引节点的大小。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
参考技术A 进入该文件及,执行 ll -t |awk 'if(NR>1) a+=$5 END print a/1024/1024' 单位M

以上是关于Shell脚本得到文件夹大小的主要内容,如果未能解决你的问题,请参考以下文章