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

linux – 用于打印大文件的命令,按大小以人类可读的格式排序

发布时间:2020-12-14 01:35:05 所属栏目:Linux 来源:网络整理
导读:我写了一个简单的 shell脚本来查找大文件,主要是为了节省一些打字.这项工作正在完成: find $dir -type f -size +"$size"M -printf '%s %pn' | sort -rn 我想将字节输出转换为人类可读的格式.我在网上找到了如何手动执行此操作的方法,例如, find $dir -type
我写了一个简单的 shell脚本来查找大文件,主要是为了节省一些打字.这项工作正在完成:

find $dir -type f -size +"$size"M -printf '%s %pn' | sort -rn

我想将字节输出转换为人类可读的格式.我在网上找到了如何手动执行此操作的方法,例如,

find $dir -type f -size +"$size"M -printf '%s %pn' | sort -rn |
   awk '{ hum[1024**4]="TB"; hum[1024**3]="GB"; hum[1024**2]="MB"; hum[1024]="KB"; hum[0]="B";
      for (x=1024**4; x>=1024; x/=1024){
         if ($1>=x) { printf "%7.2f %st%sn",$1/x,hum[x],$2;break }
      }}'

但这看起来很混乱.我想知道:是否有一种将字节转换为人类可读形式的标准方法?

当然,在目录和min-size作为输入的情况下,任何产生以下输出的替代方法也是受欢迎的:

1.25 GB      /foo/barf
 598.80 MB      /foo/bar/bazf
 500.58 MB      /bar/bazf
 421.70 MB      /bar/baz/bamf
 ...

注意:这必须适用于2.4和2.6,并且应该对输出进行排序.

解决方法

find ... | sort -rn | cut -d  -f2 | xargs df -h

例如:)或

find $dir -type -f size +$size -print0 | xargs -0 ls -1hsS

(从olibre借来一点灵感).

(编辑:李大同)

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

    推荐文章
      热点阅读