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

  • 本文关键字:磁盘 获取 df 命令 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

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

我该怎么做?

您可以检查mount命令的输出以获取当前挂载的文件系统的列表。 输出由每个格式的挂载一行组成:

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

如果要查找与HC_Volume_*匹配的已装入卷,则可以执行以下操作:

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

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

最新更新