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脚本得到文件夹大小的主要内容,如果未能解决你的问题,请参考以下文章

常用工具类,文件和内存的大小获取,shell脚本的执行

shell脚本,文件里面的英文大小写替换方法。

用shell脚本判断文件是不是在变化

求助Linux,编写Shell脚本程序统计指定目录中普通文件的个数及其总的大小

shell脚本练习

linux shell 脚本 历史文件清理脚本,按天,按月,清理前N天的历史文件,删除指定大小历史文件,历史文件归档清理