Linux环境下如何获取GCP存储桶二级子目录大小?
GCS指定深度目录自身大小统计方法
基础认知
GCS是对象存储,不存在物理层面的真实目录实体,控制台展示的“文件夹”本质由两部分组成:一是和目录路径完全同名、以斜杠结尾的占位对象(创建目录时自动生成,一般为0字节),二是所有key带有该目录前缀的普通业务文件。
之前调用gsutil命令没有得到预期结果,核心原因是默认统计类命令会递归计算路径下所有文件的聚合总大小,无法满足仅统计目录本身大小、不统计下属文件总大小的需求。
具体操作
- 按照给出的目录结构,需要统计的深度2路径为桶根下第一层
city/目录的所有二级子目录(即city/a/、city/b/这类路径) - 直接执行以下命令,精准匹配二级目录的占位对象、自动跳过路径下的普通文件:
gsutil ls -l 'gs://gcp-bucket/city/*/' | awk '$1 ~ /^[0-9]+$/ {print $2, "字节", $3}'
- 命令输出会直接列出每个二级目录的完整路径和对应占位对象的大小,不会混入下属文件的统计值
避坑提示
- 不要使用
gsutil du类命令:这类命令默认输出指定前缀下所有文件的大小总和,完全匹配不上你的统计需求 - 如果部分目录没有自动生成对应的占位对象,统计值会显示为0字节,属于正常现象
内容的提问来源于stack exchange,提问作者Vineel
相关产品推荐
相关产品推荐

