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

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

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

哪个实用程序/shell 脚本能够可靠地提供该目录/文件所在文件系统的 UUID?

我所说的文件系统的 UUID 是指UUID=...如下所示的条目blkid

我使用的是红帽Linux。

(有人建议我应该在 unix.stackexchange.com 上问这个问题,所以我把它从原来的 stackexchange.com 移走了)

答案1

一种选择是stat+findmnt组合:

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

这里-n禁用标头,并-o UUID仅打印 UUID 值。-c '%m'存在选项stat仅输出给定路径的安装点。

答案2

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

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

相关内容