加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

filesystems – 在shell中通过扩展计算总文件大小

发布时间:2020-12-15 18:39:26 所属栏目:安全 来源:网络整理
导读:我们有一组包含lucene索引的目录.每个索引都是不同文件类型的混合(按扩展名区分),例如: 0/index/_2z6.frq0/index/_2z6.fnm..1/index/_1sq.frq1/index/_1sq.fnm.. (这是大约10种不同的扩展) 我们希望通过文件扩展名获得总计,例如: .frq 21234.fnm 34757..
我们有一组包含lucene索引的目录.每个索引都是不同文件类型的混合(按扩展名区分),例如:
0/index/_2z6.frq
0/index/_2z6.fnm
..
1/index/_1sq.frq
1/index/_1sq.fnm
..

(这是大约10种不同的扩展)

我们希望通过文件扩展名获得总计,例如:

.frq     21234
.fnm     34757
..

我已经尝试过du / awk / xargs的各种组合,但发现这很难做到.

对于任何给定的扩展,您可以使用
find /path -name '*.frq' -exec ls -l {} ; | awk '{ Total += $5} END { print Total }'

获取该类型的总文件大小.

经过一番思考

#!/bin/bash

ftypes=$(find . -type f | grep -E ".*.[a-zA-Z0-9]*$" | sed -e 's/.*(.[a-zA-Z0-9]*)$/1/' | sort | uniq)

for ft in $ftypes
do
    echo -n "$ft "
    find . -name "*${ft}" -exec ls -l {} ; | awk '{total += $5} END {print total}'
done

这将输出找到的每种文件类型的大小(以字节为单位).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读