📅  最后修改于: 2023-12-03 14:39:28.742000             🧑  作者: Mango
在编写 Shell 脚本时,经常需要获取文件夹大小。本文将介绍如何使用 Shell 脚本获取指定目录下的所有文件夹大小。
以下是获取指定目录下所有文件夹大小的 Shell 脚本:
#!/bin/bash
# 定义函数,用于计算指定目录大小
function getDirSize(){
local dir=$1 # 获取第一个参数
# 计算目录大小,并输出格式化结果
echo "$(du -sh $dir | awk '{ print $1 }')"
}
# 获取指定目录下所有文件夹大小,并输出
function getAllDirSize(){
local path=$1 # 获取第一个参数
# 遍历目录,并计算子目录大小
du -sh $path/* | while read size name; do
if [ -d $name ]; then
echo "$(getDirSize $name) $name"
fi
done
}
# 测试函数调用
getAllDirSize "/var/www/"
以上脚本中,我们定义了两个函数:
getDirSize
函数:用于计算指定目录大小,并输出格式化结果。getAllDirSize
函数:获取指定目录下所有文件夹大小,并输出。在 getAllDirSize
函数中,我们使用 du -sh
命令遍历目录,并计算子目录大小。如果遍历到的是文件夹,则调用 getDirSize
函数计算其大小并输出。
最后,我们测试了 getAllDirSize
函数,输出指定目录下所有文件夹大小。
本文介绍了如何使用 Shell 脚本获取指定目录下的所有文件夹大小。希望对您有所帮助。