一、 Linux ls 显示文件大小时显示单位
在Linux中显示文件大小的时候,通常的做法是使用“ls -l”,显示的大小是文件的字节(byte)大小。
但是,如果文件比较大的话,显示起来不是特别易读,这个时候,可以使用“ls -lh”,就可以使用比较接近文件大小的单位显示文件的大小。
image.png image.pngLinux Shell 下很多命令在打印文件大小信息时,默认使用的是字节作为单位。
但为了方便用户使用,往往这些命令提供选项参数 -B[SIZE] 或 --block-size=SIZE 给用户来指定文件大小的单位,比如 ls、df、du 命令等。
注: Linux Shell 命令在列举文件大小信息时,当文件大小不是单位大小的整数倍数时,采用的是上取整的方式。
image.png image.png二、用 ls 结合 awk 统计
数据目录下数据按照年/月/日归档,存储的都是小文件
每个文件很小,但是数量大,用 du -sh 统计费时费力,甚至无法统计。
可以使用 ls 结合 awk ,做累加统计。
cat stats_data.sh
#!/bin/bash
datadir="/path/to/2022"
for x in `ls ${datadir}`
do
for y in `ls ${datadir}/${x}`
do
echo "${datadir}/${x}/${y}:"
echo ""
ls -l ${datadir}/${x}/${y} | grep -wv "total" | awk '{sum+=$5} END{print sum/(1024^3)}'
done
done
注:
1.累加值/1024^3 ,将byte 转换为 G
- 特别要注意,如果有隐藏文件,确实又需要统计,那么用 ls -la
/path/to/2022/06/21:
3.40837
三、参考
LinuxShell下文件大小单位
https://cloud.tencent.com/developer/article/1948446
关于用于 awk 统计文件大小的实用小tips
https://www.cnblogs.com/jujujulie/p/15742730.html
Learn X in Y minutes
https://learnxinyminutes.com/?continueFlag=af5fa60c4ac01d0b0f887c80ac28e5be
网友评论