首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找总磁盘和硬盘号的linux命令

查找总磁盘和硬盘号的linux命令
EN

Stack Overflow用户
提问于 2014-12-15 19:45:39
回答 3查看 2.9K关注 0票数 8

bash中是否有一个命令可以给出磁盘空间/硬盘号的总数。

我知道df命令非常有用,但是输出过于冗长:

代码语言:javascript
复制
    # df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda4       721G  192G  492G  29% /
    tmpfs           129G  112K  129G   1% /dev/shm
    /dev/sda1       194M   92M   93M  50% /boot
    /dev/sdj1       917G  547M  870G   1% /data10
    /dev/sdk1       917G  214G  657G  25% /data11
    /dev/sdl1       917G  200M  871G   1% /data12
    /dev/sdm1       917G  200M  871G   1% /data13
    /dev/sdn1       917G  200M  871G   1% /data14
    /dev/sdo1       917G  200M  871G   1% /data15
    /dev/sdp1       917G   16G  855G   2% /data16
    /dev/sdb1       917G  4.6G  866G   1% /data2
    /dev/sdc1       917G   74G  797G   9% /data3
    /dev/sdd1       917G  200M  871G   1% /data4
    /dev/sde1       917G  200M  871G   1% /data5
    /dev/sdf1       917G  200M  871G   1% /data6
    /dev/sdg1       917G  764G  107G  88% /data7
    /dev/sdh1       917G   51G  820G   6% /data8
    /dev/sdi1       917G   19G  853G   3% /data9
    /dev/sda2       193G   53G  130G  30% /home
    cm_processes    129G   46M  129G   1% /var/run/cloudera-scm-agent/process

我基本上想要‘16 to’在最后,是否有一个命令方便,或我必须编写一些程序来计算整个磁盘根据输出的df。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-15 19:48:54

那麽:

代码语言:javascript
复制
df --total

提示:首先查看手册页:man df。最近,我发现很难找到一个程序的各个方面,而这些方面还没有被一些好的标志所实现。Linux的人们似乎只知道程序员想要/需要什么。

或者如果你只想要总数:

代码语言:javascript
复制
df --total | tail -n 1

如果您想在一个特殊的块大小(如TB)中指定它,可以设置-B标志:

代码语言:javascript
复制
df --total -BT | tail -n 1

如果您只对总大小感兴趣(例如,您希望在另一个bash程序中使用结果):

代码语言:javascript
复制
df --total -BT | tail -n 1 | sed -E 's/total *([^ ]*).*/\1/'
票数 7
EN

Stack Overflow用户

发布于 2014-12-15 19:58:34

另一种使用awk的解决方案。这将打印标题和总行:

代码语言:javascript
复制
df --total -h | awk '!/^\//'
  • awk命令将打印所有行,但以字符/开头的行除外。
  • df,具有-h--human-readable打印尺寸,功率为1024 (例如,1023 M)。

结果如下:

代码语言:javascript
复制
Filesystem      Size  Used Avail Use% Mounted on
total           3.9T  1.7T  2.3T  42% -

由于Mounted on字段是无用的,您可以通过向前面的命令添加一个sed来删除它:

代码语言:javascript
复制
$ df --total -h | awk '!/^\//' | sed -E 's/Mounted on|\s-//'
Filesystem      Size  Used Avail Use%
total           3.9T  1.7T  2.3T  42%
票数 3
EN

Stack Overflow用户

发布于 2014-12-15 19:54:00

CommuSoft的回答更好,但下面是使用awk的另一种解决方案:

代码语言:javascript
复制
df -m | awk '{ SUM += $2} END { print SUM/1024/1024"TB" }'

使用-m选项使来自df的结果显示在同一个单元(MB)中。一个简单的划分可以很容易地将结果转化为TB。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27491881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档