如何获取给定路径的文件系统的UUID?


9

我收到目录或文件的路径。

哪个实用程序/ shell脚本可以可靠地给我该目录/文件所在的文件系统的UUID?

通过文件系统的UUID,我的意思是UUID=...条目,例如,blkid

我正在使用Redhat Linux。

(有人建议我应该在unix.stackexchange.com上问这个问题,所以我将其从原始的stackexchange.com中移出)


3
有关如何获取文件系统的信息,请参见unix.stackexchange.com/questions/11311/…,然后可以运行blkid
muru

请注意,并非所有文件系统都具有UUID。blkid不会为您提供UUID,例如。用于NFS挂载。
奥利弗2015年

Answers:


8

一种选择是stat+ findmnt组合:

findmnt -n -o UUID $(stat -c '%m' "$path")

此处-n禁用标头,-o UUID仅打印UUID值。选项-c '%m'stat存在仅输出MOUNTPOINT给定路径的。


2
不需要statfindmnt -no uuid -T "$path"
don_crissti

3

您可以使用df查找文件的安装点,然后将结果应用于blkid到UUID。您需要(至少)以root用户身份运行blkid才能工作:

FILE_OR_DIR="$PWD"
blkid -s UUID -o value $( df "$FILE_OR_DIR" )

最好是这样-o export,因为这样可以打印表格的输出UUID=...
muru

@muru尚不清楚我是否仅需要UUID(-o value)或UUID="value"类型表达式(-o export)。我选择了价值。
roaima
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.