如何从df命令获取挂载磁盘的名称

时间:2020-01-21 21:05:43

标签: bash

我正在运行以下命令来获取已安装磁盘的列表;

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            967M     0  967M   0% /dev
tmpfs           196M   21M  175M  11% /run
/dev/sda1        19G  3.9G   15G  22% /
tmpfs           976M     0  976M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           976M     0  976M   0% /sys/fs/cgroup
tmpfs           196M     0  196M   0% /run/user/0
/dev/sdb         25G  8.2G   16G  36% /mnt/HC_Volume_4060368

,我需要将此名称HC_Volume_4060368分配给变量。由于该安装的磁盘名称末尾的数字4060368可能不同,所以我需要一种检查方法。

我以前使用以下命令获取磁盘名称;

_dd=$(dirname /mnt/HC_*/*)
_dd=$(basename $_dd)
echo $_dd

结果:

HC_Volume_4060368

但是,在HC_Volume_*文件夹中可能有许多名称相似的磁盘以/mnt/开头,例如HC_Volume_xxxxxxx,但是实际上只有其中一个已挂载,我需要找到该名称仅该已安装的磁盘。我猜唯一找到此方法的方法是通过检查df命令,但是我找不到从该命令的结果中提取磁盘裸名的方法。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以检查mount命令的输出以获取当前已安装文件系统的列表。输出包含以下格式的每一行一行:

<device> on <mountpoint> type <fstype> (<options>)

如果您正在寻找与HC_Volume_*匹配的已安装卷,则可以执行以下操作:

mountpoint=$(mount | awk '$3 ~ /HC_Volume_/ {print $3}')
volname=${mountpoint##*/}

如果有多个装载的卷具有匹配的名称,则需要决定如何处理。