Мне вручают путь к каталогу или файлу.
Какая утилита / сценарий оболочки надежно выдаст мне UUID файловой системы, в которой находится этот каталог / файл?
Под UUID файловой системы я подразумеваю UUID=...
запись, как показано, например,blkid
Я использую Redhat Linux.
(кто-то предложил мне спросить об этом здесь, на unix.stackexchange.com, поэтому я переместил его с оригинального stackexchange.com)
linux
shell
block-device
uuid
linfan
источник
источник
blkid
.Ответы:
Один вариант
stat
+findmnt
комбо:Здесь
-n
отключает заголовок и-o UUID
печатает только значение UUID. Вариант-c '%m'
изstat
присутствует на выходе только MOUNTPOINT по заданному пути.источник
stat
:findmnt -no uuid -T "$path"
Вы можете использовать df, чтобы найти точку монтирования файла, а затем применить результат к blkid к UUID. Вам нужно запустить (как минимум) blkid от имени пользователя root, чтобы это работало:
источник
-o export
, так как это печатает вывод формыUUID=...
.-o value
) илиUUID="value"
выражение типа (-o export
). Я выбрал ценность.