Задать вопрос
prodimon
@prodimon
Developer and System administrator

Как определить имя блочного устройства по папке?

Как определить по папки /home/test/ к какому блочному устройству она принадлежит ?
пробовал так. но не во всех случаях оно подходит:
1e231e9a6a24471cb6bbb82d35fd0329.png2139f4b6eb034e2ca8388e388279620c.png
Хотелось бы получить имя блочного устройства а не uuid

Подскажите мне не слишком длинную команду для определения...
  • Вопрос задан
  • 370 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
prodimon
@prodimon Автор вопроса
Developer and System administrator
jcmvbkbc Спасибо за наводку к программе stat
вот решение:
mount | grep " $(stat -c%m /home/dimon/win/) " | awk '{print $1}'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dpvpro
#!/bin/bash

# в качестве параметра скрипта указываем папку

# берем результат работы в переменную
BLOCK=$(df $1 | awk '/dev/  {print $1}')

# если в строке содержится "by-uuid" то ...
if [[ $BLOCK == *"by-uuid"* ]] ;
then
# обрабатываем одним способом
    blkid -U $(echo $BLOCK | cut -d/ -f5)

else
# если "by-uuid" нет, то просто выводим.
  	echo $BLOCK
fi
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
find /dev -type b -print0 | xargs -0 stat -c '%02t%02T %n' | grep ^`stat -c %D <имя каталога>`

-- find находит все блочные устройства, первый stat выводит их major/minor номер и имя, grep выбирает только те, major/minor которых совпадает с major/minor блочного устройства на котором расположен каталог.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы