You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计目录中含无扩展名二进制文件的各类扩展名文件数量及Terraform相关二进制文件的数量与总大小

如何统计目录中含无扩展名二进制文件的各类扩展名文件数量及Terraform相关二进制文件的数量与总大小

我来帮你搞定这两个需求,分两部分给你说明:

一、统计所有文件(含无扩展名)的扩展名分布

你原来的命令只筛选了带.的文件,所以漏掉了无扩展名的二进制文件。我们可以用awk直接处理所有文件的文件名,区分有扩展名和无扩展名的情况,命令如下:

find . -type f | awk -F. '{
    # 判断文件是否有扩展名
    if (NF == 1 || $NF == "") {
        ext = "(无扩展名)"
    } else {
        # 把扩展名转成小写统一统计
        ext = tolower($NF)
    }
    count[ext]++
} END {
    # 按数量倒序输出统计结果
    for (e in count) {
        printf "%-20s %d\n", e, count[e]
    }
}' | sort -k2rn

命令解释:

  • find . -type f:遍历当前目录下所有普通文件(包括无扩展名的二进制)
  • awk -F.:用.作为分隔符分割文件名
  • NF == 1:表示文件名里没有.,也就是无扩展名;$NF == ""处理文件名以.结尾的特殊情况(比如myfile.),这类也归为无扩展名
  • 最后用sort -k2rn按文件数量从多到少排序,看起来更直观

二、统计Terraform相关二进制的数量与总大小

针对你更新的需求,我们可以直接通过文件名匹配Terraform核心二进制和插件,同时统计它们的数量和总大小:

find . -type f \( -name "terraform" -o -name "terraform-provider-*" \) -exec ls -l {} \; | awk '{
    count++
    total_size += $5  # $5对应ls -l输出中的文件大小(字节)
} END {
    # 转成MB方便查看
    printf "Terraform相关二进制文件数量:%d\n总大小:%d 字节(约%.2f MB)\n", count, total_size, total_size/1024/1024
}'

说明:

  • 如果你的Terraform插件还有其他命名格式(比如terraform-*开头的工具),可以在find的条件里补充,比如加-o -name "terraform-*"
  • ls -l输出的第5列是文件的字节数,awk累加得到总大小后转成MB,更易读

备注:内容来源于stack exchange,提问作者anjanesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:34:23