如何获得文件系统的uuid给定路径?

时间:2015-01-23 12:32:52

标签: linux shell uuid blkid

我被传递到目录的路径(有时是文件的路径)。

哪个实用程序/ shell脚本可以可靠地为我提供该目录(或文件)所在/存储的文件系统的UUID?

(通过文件系统的UUID,我的意思是“UUID = ...”条目,例如blkid所示)

(这在redhat linux上很开心)

3 个答案:

答案 0 :(得分:2)

试试这行:

 sudo blkid -o value $(\df --output=source "$file"|tail -1)|head -1

在上面的行中,$file是保存文件/目录的变量。在调用该行之前,您可能想要检查文件/目录是否存在。

此行需要root权限(sudo

\df只是为了避免使用别名,如果您有别名,例如使用-T选项,则与--output冲突

一些测试:

kent$  file="/home/kent/.vimrc"
kent$  sudo blkid -o value $(\df --output=source "$file"|tail -1)|head -1
9da1040a-4a24-4a00-9c62-bad8cc3c028d 

kent$  file="/etc"
kent$  sudo blkid -o value $(\df --output=source "$file"|tail -1)|head -1
2860a386-af71-4a28-86d7-00ccf5d12b4d

答案 1 :(得分:1)

找到路径安装点的设备

DEVICE=$(df /path/to/some_file_or_directory | grep "$MOUNTPOINT\$"| cut -f1 -d" ")

并获取设备的UUID:

sudo blkid $DEVICE

答案 2 :(得分:0)

简单地说,你可以这样打字,

pchero@mywork:~$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jan 23 09:03 0267689b-b929-4f30-b8a4-08c742f0746f -> ../../sda2
lrwxrwxrwx 1 root root 10 Jan 23 09:03 2d682ea1-dab0-49ba-a77a-9335ccd47e58 -> ../../sda3
lrwxrwxrwx 1 root root 10 Jan 23 09:03 64e733e9-2e6a-4d3e-aabe-d0d26fbfc991 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan 23 09:03 a99fb356-4e01-4a1c-af41-001b0fd8a844 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jan 23 09:03 f2f7618e-76c5-4e9a-9657-e002d9a66ccf -> ../../sda4