Shell 列出未格式化磁盘(分区)的脚本
Shell script to list unformatted disks (partitions)
我想创建一个脚本,在 Linux OS.
中列出 未格式化的 partitions/disks
我找不到列出未格式化磁盘/分区的可靠方法。
我尝试使用 lsblk --output NAME,FSTYPE,MOUNTPOINT | grep "sd"
输出:
sda
└─sda1 xfs /
sdb
└─sdb1 ext4 /mnt/resource
sdc
sdd
没有列出挂载点的名称是未格式化的磁盘。我怎样才能得到这些名字?或者获得这些的最佳方式是什么?
我在 CentOS Linux 7.3.1611 版(核心版)
试试这样的东西:
lsblk --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { if ( != "" ) dsk=;if ( == "") print dsk }'
我们将挂载点行上方的分区存储在变量 dsk 中,然后在没有挂载点时将其打印出来,即 $2 等于 null。
粘贴评论中有效的答案:
lsblk -r --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { dsk=substr(,1,3);dsks[dsk]+=1 } END { for ( i in dsks ) { if (dsks[i]==1) print i } }'
我想创建一个脚本,在 Linux OS.
中列出 未格式化的 partitions/disks我找不到列出未格式化磁盘/分区的可靠方法。
我尝试使用 lsblk --output NAME,FSTYPE,MOUNTPOINT | grep "sd"
输出:
sda
└─sda1 xfs /
sdb
└─sdb1 ext4 /mnt/resource
sdc
sdd
没有列出挂载点的名称是未格式化的磁盘。我怎样才能得到这些名字?或者获得这些的最佳方式是什么?
我在 CentOS Linux 7.3.1611 版(核心版)
试试这样的东西:
lsblk --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { if ( != "" ) dsk=;if ( == "") print dsk }'
我们将挂载点行上方的分区存储在变量 dsk 中,然后在没有挂载点时将其打印出来,即 $2 等于 null。
粘贴评论中有效的答案:
lsblk -r --output NAME,MOUNTPOINT | awk -F \/ '/sd/ { dsk=substr(,1,3);dsks[dsk]+=1 } END { for ( i in dsks ) { if (dsks[i]==1) print i } }'