代码之家  ›  专栏  ›  技术社区  ›  jasonmclose

获取子目录大小的更好方法

  •  0
  • jasonmclose  · 技术社区  · 6 年前

    我遇到的一个问题是,我可能没有访问某些子文件夹的权限,因此尽最大努力调整目录大小,因为我们可能会收到对递归命令的“权限被拒绝”响应。

    以下是我的想法:

    #!/bin/bash
    DIR=/my/shared/folder/*
    
    for d in $DIR
    do
        if [ -d $d ]
        then
            dirsize=$(du -sh $d 2>/dev/null | cut -f1)
            echo "$dirsize - $d"
        fi
    done
    

    这个 2>/dev/null

    find 与…结合 awk 在某些情况下,可以生成完成此任务所需的一个班轮。

    1 回复  |  直到 6 年前
        1
  •  1
  •   brunorey    6 年前

    如果你需要的是完整的路径,那么你可以这样做

    du -hs /my/shared/folder/*/
    

    du -hs /my/shared/folder/*/ 2>/dev/null
    

    正如 Socowi ,如果希望输出用短划线而不是制表符分隔,则可以使用 sed

    du -hs /my/shared/folder/*/ 2>/dev/null | sed 's/\t/ - /'