📜  bash 文件夹大小 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:39:28.742000             🧑  作者: Mango

Bash 文件夹大小

在编写 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 脚本获取指定目录下的所有文件夹大小。希望对您有所帮助。