用于列出未格式化磁盘(分区)的Shell脚本

时间:2017-05-10 09:58:25

标签: linux bash shell disk-partitioning

我希望在Linux操作系统中创建一个列出无格式分区/磁盘的脚本。

我无法找到列出未格式化磁盘/分区的可靠方法。

我尝试使用输出的lsblk --output NAME,FSTYPE,MOUNTPOINT | grep "sd"

sda
└─sda1 xfs    /
sdb
└─sdb1 ext4   /mnt/resource
sdc
sdd

没有列出mountpoint的名称是未格式化的磁盘。我怎么能得到这些名字?或者最好的方法是什么?

我在CentOS Linux版本7.3.1611(核心)

1 个答案:

答案 0 :(得分:2)

尝试类似:

lsblk --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { if ($1 != "" ) dsk=$1;if ( $2 == "") print dsk }'

我们将分区上方的分区存储在变量dsk中,然后在没有安装点的情况下将其打印出来,即$ 2等于null。

从评论中找到答案:

lsblk -r --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { dsk=substr($1,1,3);dsks[dsk]+=1 } END { for ( i in dsks ) { if (dsks[i]==1) print i } }'