从df的输出中获取剩余的磁盘空间

时间:2015-10-13 21:05:27

标签: shell unix diskspace df

我想在我的主目录中获取剩余的磁盘空间:

df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           20G   15G  3.5G  81% /
/dev/root        20G   15G  3.5G  81% /
devtmpfs        990M  4.0K  990M   1% /dev
none            199M  2.7M  196M   2% /run
none            5.0M     0  5.0M   0% /run/lock
none            991M   12K  991M   1% /run/shm
/dev/sda2       894G  847G  1.9G 100% /home

注意:上面输出中我需要的只是1.9G

5 个答案:

答案 0 :(得分:2)

使用grep仅使用/ home行,使用awk仅获取所需的字段:

df -h | grep -w /home | awk '{print $4}'

答案 1 :(得分:1)

尝试以下awk命令:

df -h | awk '$6 == "/home" { print $4 }'
  • $6 == "/home"仅处理第6行以空格分隔的列包含/home的(一)行。
  • { print $4 }打印该行上第四个以空格分隔的字段,这是剩余的磁盘空间。

答案 2 :(得分:1)

请尝试以下命令之一:

$ grep -o 1.9G <(df -h)
$ df -h|awk '/home/{print $4}'
$ grep home <(df -h) | awk '{print $4}'
$ df=($(tail -1 <(df -h))) echo ${df[3]}
$ vi -es +'%j|norm 3dWWd$' -c%p -cq! <(df -h)
$ printf "%s\n" $(tail -1 <(df -h))|tail -3|head -1
$ ex -s <(df -h|egrep -o "\S+\s+\S+\s+/home") +'norm Wd$' +%p -cq!

答案 3 :(得分:0)

尝试一下:

df -h | awk '{print $4}'

答案 4 :(得分:0)

虽然环形交叉路口并且与ext2相关联,但这里有tune2fs

tune2fs /dev/sdc1 -l | egrep '^(Free blocks|Block size)' | 
    cut -d: -f2 | xargs |
    while read free size; 
    do 
        echo "$free blocks of size $size free: $((($size*$free)>>20)) mebibytes"
    done