Как узнать имя смонтированного диска из команды df - PullRequest
1 голос
/ 22 января 2020

Я запускаю следующую команду, чтобы получить список моего смонтированного диска:

$ 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 Ответ

2 голосов
/ 22 января 2020

Вы можете проверить вывод команды mount, чтобы получить список смонтированных в данный момент файловых систем. Вывод состоит из одной строки на монтирование в формате:

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

Если вы искали смонтированный том, который соответствует HC_Volume_*, вы можете сделать это:

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

Если имеется несколько смонтированных томов с совпадающими именами, вам необходимо решить, как с этим справиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...